我有一个绑定(bind)到集合的 WPF ComboBox List<Users>
。我已应用 DataTemplate 使用 TextBlock 显示 FirstName,这按预期工作:
<ComboBox Margin="5" ItemsSource="{Binding Path=TheUsers}" Name="cboUsers">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Margin="10" Text="{Binding Path=FirstName}">
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>`
我的 User 类中有一个名为 IsActive 的项目,它是一个 bool 值。如果为 true,那么我想将 TextBlock 的前景设置为海军蓝。
我花了很多时间研究应该如此简单的事情,并浏览了整个网络,但大多数文章都讨论了更改整体颜色或绑定(bind)到 xaml 中的另一个元素。
我尝试实现 DataTrigger,一小时后删除了代码,因为它不起作用。它不会识别我的字段名称。有没有人有一个非常简单的指南来指导如何做到这一点或什么是最好的方法?
最佳答案
由于您显然没有处理字段,因此这种样式应该满足您的要求:
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsActive}" Value="True">
<Setter Property="Foreground" Value="Navy"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
It would not recognise my field name.
您无法绑定(bind)到字段,故事结束。
关于wpf - 根据数据绑定(bind) ItemsSource 项中的值有条件地更改 WPF ComboBox 项的前景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890159/