根据属性 Mvvm 的 WPF ComboBox 颜色项 [英] WPF ComboBox color item according to property Mvvm
本文介绍了根据属性 Mvvm 的 WPF ComboBox 颜色项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个简单的问题.
我有一个基于字典的组合框
I am having a combobox that is based on Dictionary
组合框:
<ComboBox SelectedValuePath="Key" DisplayMemberPath="Value.ModuleName"
controls:TextBoxHelper.Watermark="All" Height="2"ItemsSource="{Binding Modules}"/>
模块标识字典:
public Dictionary<string, ModulesModel> Modules { get; set; }
ModulesModel 和 modules 模型只是:
ModulesModel and modules models is just:
public class ModulesModel
{
public byte ModuleId { get; set; }
public string ModuleName { get; set; }
public bool IsWarning { get; set; }
}
所以组合框填充得很好,但现在我正在尝试为组合框项目的背景着色,如果警告设置为 true,到目前为止我尝试过
So combo box fills fine but now i am trying to colour background of a combo box item if warning is set to true, so far i tried
<ComboBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
//NOW HOW TO BING Value.IsWarning?
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
运气不好,有办法吗?
推荐答案
使用 ItemContainerStyle
而不是 ItemTemplate
Use ItemContainerStyle
instead of ItemTemplate
<ComboBox SelectedValuePath="Key" DisplayMemberPath="Value.ModuleName"
controls:TextBoxHelper.Watermark="All" Height="2"ItemsSource="{Binding Modules}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsWarning }" Value="True">
<Setter Property="Backgroupd" Value="Blue" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
这篇关于根据属性 Mvvm 的 WPF ComboBox 颜色项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文