嗨,我有一个简单的问题。
我有一个基于Dictionary
的组合框组合框:
<ComboBox SelectedValuePath="Key" DisplayMemberPath="Value.ModuleName"
controls:TextBoxHelper.Watermark="All" Height="2"ItemsSource="{Binding Modules}"/>
模块ID字典:
public Dictionary<string, ModulesModel> Modules { get; set; }
ModulesModel和modules模型只是:
public class ModulesModel
{
public byte ModuleId { get; set; }
public string ModuleName { get; set; }
public bool IsWarning { get; set; }
}
所以组合框填充不错,但现在我正在尝试将组合框项目的背景颜色设置为警告设置为true,到目前为止我试过了
<ComboBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
//NOW HOW TO BING Value.IsWarning?
</DataTemplate.Triggers>
</DataTemplate>
</ComboBox.ItemTemplate>
没有运气,有办法吗?
答案 0 :(得分:3)
使用ItemContainerStyle
代替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>