注意我已要求相關的問題:How to combine DataTrigger and EventTrigger?WPF - 如何結合DataTrigger和觸發器?
我有一個包含多個項的列表框。該物品的類實現INotifyPropertyChanged
,並有一個屬性IsAvailable
。我使用該屬性來使用不同的顏色在列表中指示不可用的選項。
但是,如果選定的項目不可用,則前景色應爲紅色。
<ListBox>
<ListBox.Resources>
<DataTemplate DataType="{x:Type local:InstitutionViewModel}">
<TextBlock Name="Name" Text="{Binding Name}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsAvailable}" Value="False">
<Setter TargetName="Name" Property="Foreground" Value="#888"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.Resources>
</ListBox>
我使用上面的數據觸發器來灰化不可用的項目。
我面臨的問題是,該項目被選中的事實與該模板綁定的底層數據無關。我真正想要的是某種多觸發器,它支持綁定數據項上的依賴項屬性(ListBoxItem.IsSelected
)上的常規Trigger
以及DataTrigger
。
這可以在沒有將選擇概念引入我的視圖模型的情況下完成嗎?
對於任何人想知道爲什麼我不禁用不可用的項目,請理解,應用程序的要求是可選的不可用選項。實際上有幾個列表框,並且在一個效果中選擇其他的可用選項。我無法禁用這些項目,因爲如果根據較早的選擇禁用項目,用戶將無法改變主意或探索不同的組合。
這正是我打算推薦。據我所知這是最好的解決方案。 – 2009-03-02 15:28:29