C# 如何将复选框绑定到复选框列表框
我有一个复选框列表和一个复选框,作为列表框中所有项目的CheckAll/UncheckAll 如果列表框绑定中的所有项目都已选中,如何使chkAll复选框处于选中状态 我可以在视图模型中创建一个属性来实现这一点。我想在xaml代码中这样做C# 如何将复选框绑定到复选框列表框,c#,wpf,xaml,checkbox,listbox,C#,Wpf,Xaml,Checkbox,Listbox,我有一个复选框列表和一个复选框,作为列表框中所有项目的CheckAll/UncheckAll 如果列表框绑定中的所有项目都已选中,如何使chkAll复选框处于选中状态 我可以在视图模型中创建一个属性来实现这一点。我想在xaml代码中这样做 <ListBox Name="listBox" ItemsSource="{Binding mySource}"> <ListBox.ItemTemplate>
<ListBox Name="listBox" ItemsSource="{Binding mySource}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelectedProperty}">
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<CheckBox Name="chkAll" Content="CheckAll/UnCheckAll" IsChecked ={}/>
我认为您需要一个更高级别的视图模型属性来反映这个附加状态。该状态也有三个可能的值,因此请确保将
IsThrestate
设置为true,并将其绑定到一个Nullable
然后在该属性的setter中,可以更新所有其他复选框属性
对于每个项目的
IsSelectedProperty
,您还需要更新三状态属性。我认为您需要有一个更高级别的视图模型属性来反映此附加状态。该状态也有三个可能的值,因此请确保将IsThrestate
设置为true,并将其绑定到一个Nullable
然后在该属性的setter中,可以更新所有其他复选框属性
对于每个项目的
IsSelectedProperty
,您还需要更新三态属性。@lynn了解此链接如何回答我的问题:)我的列表绑定工作正常,符合预期。问题在于独立复选框chkAll中。我会在viewmodel中创建一个具有setter的公共属性;当该setter的值为true时,遍历mySource中的所有项,并将IsSelected设置为true。(注意:如果未选中任何项,则需要将此相同属性设置为false。)在纯xaml中无法执行此操作。@lyn计算此链接如何回答我的问题:)我的列表绑定工作正常,正如预期的那样。问题在于独立复选框chkAll中。我会在viewmodel中创建一个具有setter的公共属性;当该setter的值为true时,遍历mySource中的所有项,并将IsSelected设置为true。(注意:如果未选中任何项,则需要将该属性设置为false。)在纯xaml中无法执行此操作。