xamlに[すべて選択]チェックボックスを実装したいと思います。
リストビューにいくつかの(テンプレート化された)チェックボックスがあります。次に、リストビューの外側にチェックボックスがあり、「すべて選択」動作が必要です。ViewModelで問題を簡単に解決できましたが、[すべて選択]チェックボックスはViewModelとは(直接)関係がないため、xamlでこれを行う方がエレガントだと思います。コードは次のようになります。
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox Content="Globale Eingabe"
Name="SelectSingle"
IsChecked="{Binding IsChecked}">
</CheckBox>
</DataTemplate>
<ListView.ItemTemplate>
</ListView>
<CheckBox Name="SelectAll" />
ご覧のとおり、SelectSingleのIsCheckedプロパティはすでにViewModelにバインドされています。したがって、チェックボックスの状態を操作するためのトリガーが必要だと思います。
今、私はすでにこのようなsthを試しました:
<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>
またはこのようなsth:
<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バインディングが機能しないように聞こえますが、なぜですか?足りないものはありますか?