如何将CheckBox IsChecked绑定到CheckBoxes的ListBox

时间:2017-03-22 16:41:22

标签: c# wpf xaml checkbox listbox

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

1 个答案:

答案 0 :(得分:0)

我认为您需要具有反映此附加状态的更高级别视图模型属性。状态也有三个可能的值,因此请务必将IsThreeState设置为true,并将其绑定到Nullable<bool>

然后在此属性的设置器中,您可以更新所有其他复选框属性。

对于每个项目IsSelectedProperty,您还需要更新三州的财产。