Я бы хотел установить флажок выбора всех в xaml.
У меня есть несколько (шаблонных) флажков в виде списка. Затем у меня есть флажок за пределами списка, который я хочу иметь «выбрать все» - поведение.
Я мог бы легко решить проблему в моей ViewModel, однако, я думаю, что было бы более элегантно сделать это в xaml, поскольку флажок select all (напрямую) не имеет никакого отношения к моей ViewModel.
Код выглядит примерно так:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox Content="Globale Eingabe"
Name="SelectSingle"
IsChecked="{Binding IsChecked}">
</CheckBox>
</DataTemplate>
<ListView.ItemTemplate>
</ListView>
<CheckBox Name="SelectAll" />
Как видите, свойство IsChecked объекта SelectSingle уже привязано к моей модели представления. Поэтому я считаю, что мне нужен триггер для манипулирования состоянием флажка.
Теперь я уже попробовал вот что:
<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>
Я тоже пробовал то же самое в стиле, но безрезультатно. Я всегда получаю сообщение об ошибке, что по типу «статического члена» IsCheckedProperty не удается найти в типе «ContentPresenter» ».
Теперь это звучит так, как будто привязка Target / SourceName не будет работать, но почему?
Я что-то упускаю?