我在列表视图中有几个(模板化的)复选框。然后,我在listview之外有一个复选框,我希望有一个“全选”行为。
我可以在我的ViewModel中轻松地解决这个问题,但是,我认为在xaml中这样做会更优雅,因为“全选”复选框(直接)与我的ViewModel没有任何关系。
代码如下所示:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox Content="Globale Eingabe"
Name="SelectSingle"
IsChecked="{Binding IsChecked}">
</CheckBox>
</DataTemplate>
<ListView.ItemTemplate>
</ListView>
<CheckBox Name="SelectAll" />
如您所见,SelectSingle的IsChecked属性已绑定到my ViewModel。所以我想我需要一个触发器来操纵复选框的状态。
现在我已经试过这样的东西了:
<CheckBox Content="Globale Eingabe"
Name="SelectSingle"
IsChecked="{Binding IsChecked}">
<CheckBox.Triggers>
<Trigger SourceName="SelectAll" Property="IsChecked" Value="True">
<Setter TargetName="SelectSingle" Property="IsChecked" Value="True"/>
</Trigger>
</CheckBox.Triggers>
</CheckBox>
<CheckBox Content="Globale Eingabe"
Name="SelectSingle"
IsChecked="{Binding IsChecked}">
<CheckBox.Triggers>
<DataTrigger Binding="{Binding ElementName=SelectAll, Path=IsChecked}"
Value="True">
<Setter TargetName="Check"
Property="IsChecked"
Value="True"/>
</DataTrigger>
</CheckBox.Triggers>
</CheckBox>
我也尝试过同样的风格,但没有结果。我总是得到一个错误,在类型“ContentPresenter”中找不到与“static member”IsCheckedProperty类似的内容。
有什么我遗漏的吗?