C# 如何将复选框绑定到复选框列表框

C# 如何将复选框绑定到复选框列表框,c#,wpf,xaml,checkbox,listbox,C#,Wpf,Xaml,Checkbox,Listbox,我有一个复选框列表和一个复选框,作为列表框中所有项目的CheckAll/UncheckAll 如果列表框绑定中的所有项目都已选中,如何使chkAll复选框处于选中状态 我可以在视图模型中创建一个属性来实现这一点。我想在xaml代码中这样做 <ListBox Name="listBox" ItemsSource="{Binding mySource}"> <ListBox.ItemTemplate>

我有一个复选框列表和一个复选框,作为列表框中所有项目的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 ={}/>

我认为您需要一个更高级别的视图模型属性来反映这个附加状态。该状态也有三个可能的值,因此请确保将
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中无法执行此操作。