1

ファイル名とそのパスを列に表示するobjectlistviewがあります。選択したアイテムに対して関数を実行したい。ファイル名の値を取得して、objectlistviewで選択されているすべてのファイルをループする方法はありますか?列アスペクト名はファイル名です。

私の関数は次のとおりです。sampleFunction(string inputFile、string outputFile);

これまでにこれを試しましたが、機能しませんでした。列自体への参照が欠落していることはわかっていますが、追加する方法がわかりません。

for(var i=0; i<=objectListView1.SelectedObjects.Count; i++)
        {
            encClass.sampleFunction(objectListView1.SelectedObjects[i], "output here");
        }

編集:

また、appendToString()メソッドを試してみましたobjectListView1.SelectedObjects[i].ToString()。エラーは表示されませんが、3つの列があり、関数の最初の列の値をinputFile値として使用したかったため、関数を完全に実行できませんでした。

4

1 に答える 1

6

OLV の概念を正しく理解していないようです。チュートリアルを(もう一度)読むことをお勧めします。
OLV を使用すると、基になるモデル オブジェクトを直接操作できるため、選択したオブジェクトを元の型にキャストし、そのプロパティにアクセスするだけです。モデルへのアクセスを簡素化する TypedObjectListView<> を使用することもできます。

あなたの投稿から判断すると、あなたがやりたいことはおそらく次のようなものです:

foreach (var selectedObject in objectListView1.SelectedObjects) {
    encClass.sampleFunction(((MyType)selectedObject).Filename, "output here");
}

明らかに、「MyType」をモデル オブジェクト タイプに置き換えます。

于 2013-03-25T07:49:38.203 に答える