複数選択ListBoxのListBoxItemsに次のデータトリガーがあります
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource DisableWorkItemConverter}">
<Binding ElementName="MainForm" Path="PickedWorkItemID"/>
<Binding Path="Id"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="IsSelected" Value="False"/>
</DataTrigger>
IsEnabled は正常に設定されますが、IsSelected は設定されません。どうすれば修正できますか?
IsEnabled を取り出して IsSelected と競合しているかどうかを確認しようとしましたが、アイテムが選択されたままになってはいけません。
繰り返しますが、IsEnabled が正しく動作するため、バインディングとコンバーターが正常に動作していることがわかります。しかし、何らかの理由で IsSelected は設定解除されません。
編集:これがIsEnabledのように機能したくないかもしれないと思いました。このトリガーが false と評価されると、アイテムが再度有効になるためです。このトリガーが無効になったという理由だけで、以前に選択されていなかった行が選択されることは望ましくありません。
何か案は?基本的に、無効な行を選択したくありません。
編集2:
データトリガーから連鎖することを期待して通常のトリガーを追加しようとしましたが、それも機能しませんでした。
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource DisableWorkItemConverter}">
<Binding ElementName="MainForm" Path="PickedWorkItemID"/>
<Binding Path="Id"/>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="IsSelected" Value="False"></Setter>
</Trigger>
</Style.Triggers>