我有我多選擇列表WPF DataTrigger - 設置ListBoxItem的IsSelected
<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獲取設定罰款ListBoxItems以下數據觸發,但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>
在再現您的問題時,我發現如果在觸發器中設置ListBoxItem IsSelected = True,那麼我可以在觸發器中將其設置爲False。但是,一旦用戶選擇了該項目,觸發器將不再更改IsSelected。 –
嗯,這很有趣。對於我來說,找到一種方法去除選擇並不是一個好兆頭。感謝您的關注。 – Vaccano