c# - 通过触发器更改文本 block 中文本的颜色

标签 c# .net wpf xaml datatrigger

这是我的Xaml

 <Window.Resources>
    <sampleData:MainWindow x:Key="DataSource"/>
    <DataTemplate x:Key="bobReferencer">                      
        <TextBlock Text="{Binding Name}" >
            <TextBlock.Style>
                <Style TargetType="TextBlock">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding HasErrors}" Value="true">
                          //what goes in here?
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
        </TextBlock>                                            
    </DataTemplate>    
</Window.Resources>

代码隐藏(一个 xaml 引用)

public class bob
{

    public string Name
    {
        get;
        set;
    }

    public bool HasErrors
    {
        get;
        set;
    }
 }

基本上我想做的是,如果 HasErrors 为真,那么我希望名称通过触发器显示为红色。但是我的 xaml 格式不正确。对此有什么建议吗?我也查看了此链接,但没有太大帮助。
How can I change the Foreground color of a TextBlock with a Trigger?

最佳答案

你快到了......

        <Style TargetType="TextBlock">
            <Style.Triggers>
                <DataTrigger Binding="{Binding HasErrors}" Value="true">
                  <Setter Property="Foreground" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

关于c# - 通过触发器更改文本 block 中文本的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453815/

相关文章:

c# - 在 .net 4.0 版本上找不到 System.Web 程序集

c# - 为什么 EnumDropDownListFor 在 url 参数与模型中的字段相同时绑定(bind)不正确

c# - 如何在WPF中处理TabItem单击事件?

wpf - 列表框分组问题

c# - 实体类型的 EF 条件包含

c# - 从同一类的不同实例设置 protected /私有(private)属性

c# - 在 C# 中创建具有多个屏幕的 Windows Mobile 应用程序的最佳方法是什么

wpf - 从代码隐藏更改不透明度

c# - c# Forms 应用程序中的 Google 地球 map

c# - StreamWriter.WriteLine() 结果为空文件