0

重複の可能性:
SelectedItemおよびサブアイテムへのWPFリストビューアクセス

私はそのように定義されたリストビューを持っています:

<ListView Height="234.522" Name="chartListView" Width="260" SelectionChanged="chartListView_SelectionChanged" HorizontalAlignment="Left" Margin="251,38,0,38">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="op1" DisplayMemberBinding="{Binding op1}" Width="50"/>
                <GridViewColumn Header="op2" DisplayMemberBinding="{Binding op2}" Width="50"/>
                <GridViewColumn Header="op3" DisplayMemberBinding="{Binding op3}" Width="50"/>
                <GridViewColumn Header="op4" DisplayMemberBinding="{Binding op4}" Width="50"/>
                <GridViewColumn Header="op5." DisplayMemberBinding="{Binding op5}" Width="50"/>
            </GridView>
        </ListView.View>
    </ListView>

以下を使用してデータを追加します。

chartListView.Items.Add(new { 
  op1 = "test1", op2 = "test2", op3 = "test3", op4 = "test4", op5 = "test5" });

選択したアイテムの1つにアクセスして、列の値を確認するにはどうすればよいop3ですか(たとえば)。次のコードはすべての値を示していますが、私は見たいだけop3です。

MessageBox.Show(chartListView.SelectedItem.ToString());
4

1 に答える 1

1

UIを下にあるロジックに接続するには、 MVVMパターンを使用することをお勧めします。

インターネット上には、M* VVMパターン*に関する多くの情報とリソースがあります。

中心となるアイデアは、データ構造と変数を保持するViewModel (VM)を用意することです。これらのデータ構造と変数は完全に自律的であり、UIレイヤーにまったく依存していません。VMからUI/ビュー(V)への構造と変数の接続は、DataBindingsにあります。

したがって、(非常に短い用語で)行う必要があるのは、リストコントロールのItemSourceプロパティをいくつかの基礎となるデータ構造に接続することです(ここでの通常の構造はObservableCollectionです-理由については文献を読んでください)。

それが最初のステップです。2番目のステップは、リストの現在選択されている項目を保持するオブジェクト型の変数をViewModelに追加することです。これを機能させるには、リストのSelectedItemプロパティをこの変数に接続するだけです。

それ以降、リスト内のアイテムを選択するたびに、ビュー内の変数がその値を保持します。

もちろん、これは非常に短期的でかなり大雑把ですが、 MVVMパターンをより深く掘り下げるアイデアを与えたかもしれません-それはかなりよく考えられています;)

于 2012-06-28T21:15:14.460 に答える