根据属性 Mvvm 的 WPF ComboBox 颜色项 [英] WPF ComboBox color item according to property Mvvm

查看:33
本文介绍了根据属性 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆