这是我的第一个包含ADD
的{{1}}:
TINYINT(1) NOT NULL;
如何添加选项以仅检查特定ListView row column
中的一个CheckBox
以及我选择另一个<GridViewColumn Width="40" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="cbSelectInterface" IsThreeState="False" ></CheckBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
的内容并检查此控件是否所有其他CheckBox
都未选中?
答案 0 :(得分:1)
将CheckBox的IsChecked属性绑定到ListViewItem的IsSelected属性怎么样?如果SelectionMode设置为Single,那么您将只能选择一行和一个复选框。
<ListView ItemsSource="{Binding Source={StaticResource TestDataSource}}"
SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Width="30">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected,
RelativeSource={RelativeSource
AncestorType={x:Type ListViewItem}}}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding}" />
</GridView>
</ListView.View>
</ListView>
然后,您可以使用ListView的SelectedItem
来知道哪一行是带有选中CheckBox的行。
答案 1 :(得分:0)
在WPF中,没有控件可以自动执行您想要的操作。但是,如果您按照WPF应用程序中的惯例使用数据绑定,那么实现您的需求很简单,或者至少很简单。在这种情况下,您的视图模型或后面的代码将包含一个包含所有数据项的对象(将是绑定到ListView.ItemsSource
属性的数据)。
当检查其中一个Checkbox
es时,您需要做的就是遍历数据绑定集合中的每个项目,并将其属性绑定到Checkbox
到{{1 }}:
false
如果您已经在数据类上实现了foreach (var item in YourDataBoundCollection)
{
item.PropertyDataBoundToCheckBox = false;
}
接口,那么UI将自动更新。
唯一剩下的问题是你怎么知道INotifyPropertyChanged
何时被检查过?最简单的“非MVVM”方式是为CheckBox.Checked
Event添加处理程序。