私は2つの列のリストビューを持っています。最初の列はチェックボックス、2番目の列はサーバー値です。基本的に、ボタンをクリックした後に、その行に対応するチェックボックスがあるすべてのサーバー名のリストを取得したいとします。これはどのように可能ですか?以下では、サーバーモデルからデータを正常にバインドして、最初の列にチェックボックスを入れることができましたが、私は立ち往生しています。WPF/C#のチェック項目からListView項目のリストを取得する機能はありますか?
MVVMパターンに従っているので、理想的にはこのロジックを処理し、チェックされたサーバー名がいくつかのコレクションに格納された後に渡すビューモデルクラスがあります。
XAMLコード
<ListView ItemsSource="{Binding Servers}" Margin="8,30,10,68">
<ListView.View>
<GridView>
<GridViewColumn Width="90" Header="Select For Sync">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="{Binding ID}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="280" Header="Pad Name"
DisplayMemberBinding="{Binding NodeName}" />
</GridView>
</ListView.View>
</ListView>
は「私はこだわっています」と、何正確に問題がありますか? 2列目に何も表示されていませんか? 1行しか追加しませんか? 'Servers'の各データがブール値を持つ場合、チェックボックスがチェックされているかどうかを保存するためにコードを実際に単純化することができます。これを前に行い、必要に応じてサンプルコードを提供できます。 –
@ KeyurPATEL選択したチェックボックスを文字列コレクションに変換します。コレクションの各アイテムは、サーバー列の関連する文字列名です。データは2番目の列に表示されますが、最初の列でチェックされた内容に基づいてそのデータを取得します。 – ryan
前に非常に似たようなことをしましたが、私のコードの一部を答えとして適合させようとします。 –