【发布时间】:2017-03-23 01:17:13
【问题描述】:
我有一个复选框列表和一个复选框,该复选框充当列表框中所有项目的 CheckAll/UncheckAll。
如果列表框绑定中的所有项目都被选中,我怎样才能使 chkAll 复选框被选中?
我可以在视图模型中创建一个属性来实现这一点。我想在 xaml 代码中做。
<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 ={}/>
【问题讨论】:
-
@LynnCrumbling 此链接如何回答我的问题 :) 我的列表绑定工作正常且符合预期。问题出在独立复选框 chkAll 中。
-
我会在具有设置器的视图模型中创建一个公共属性;当该 setter 的值 = true 时,循环遍历 mySource 中的所有项目并设置 IsSelected = true。 (注意:如果未选中任何项目,则需要设置相同的属性 = false。)您将无法在纯 xaml 中执行此操作。
标签: c# wpf xaml checkbox listbox