wpf - 根据数据绑定(bind) ItemsSource 项中的值有条件地更改 WPF ComboBox 项的前景

标签 wpf combobox datatrigger

我有一个绑定(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/

相关文章:

wpf - 如何让 DataTemplate.DataTrigger 检查大于或小于?

.net - 椭圆绘图 WPF 动画

c# - 如何使用上一个/下一个按钮循环浏览 XML 文件中的记录?

wpf - 当 WPF ComboBox 的选择为空时,它可以显示替代文本吗?

c# - WPF - DataTrigger 动画不起作用

.net - 如何在更新 ViewModel 属性时触发动画?

c# - ComboBox 与 ObservableCollection 绑定(bind)

c# - 创建一个包含已选中复选框的值的组合框

c# - 带有复选框的 WPF ComboBox 显示有关选中项目的信息?

JavaFX - 组合框更新从另一个 Controller 获取数据