将listview中的复选框绑定到类变量?

时间:2017-01-27 17:07:22

标签: c# wpf listview checkbox

我希望能够在列表视图中获取并设置复选框的状态。我希望能够在xaml中以某种方式绑定单击框时自动更新MyListItems[row].myCheckedValue(我对绑定知之甚少)或者能够逐行遍历每个列表并访问复选框C#。我也不知道如何接近。我刚刚开始使用WPF。

我也可以使用Checked和Unchecked事件,但我不知道如何检索复选框所在的列表项的行。

<ListView Name="listView">
   <ListView.ItemTemplate>
      <DataTemplate>
         <CheckBox x:Name="checkBox" Checked="itsChecked" Unchecked="itsUnchecked"/>
      </DataTemplate>
   </ListView.ItemTemplate>
</ListView>
public List<myListItem> MyListItems;
...
listView.ItemsSource = MyListItems;
...
public class myListItem {
   public bool myCheckedValue;
}
private void getCheckedItems() {
   //Loop through listview rows and get checkbox state
   //???
}
private void itsChecked(object sender, RoutedEventArgs e) {
   //How can I get the row this checkbox is in??
}

2 个答案:

答案 0 :(得分:2)

类似

<GridViewColumn Header="Selected">
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox x:Name="chk" IsChecked="{Binding MyListItemsBoolField}" />
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn>

假设您的listView.ItemsSource = MyListItems;将留下

答案 1 :(得分:0)

它应该像将CheckBox的IsChecked属性绑定到ViewModel上的属性一样简单(如果新属性尚不存在,则可能需要添加它)。