通过触发器更改文本块中文本的颜色

时间:2013-10-18 15:51:02

标签: 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>

Codebehind(一个xaml引用)

public class bob
{

    public string Name
    {
        get;
        set;
    }

    public bool HasErrors
    {
        get;
        set;
    }
 }

基本上我想要做的是如果HasErrors为真,那么我希望Name通过触发器以红色显示。但我的xaml没有正确形成。有什么建议吗?我也看了这个链接,但没多大帮助 How can I change the Foreground color of a TextBlock with a Trigger?

2 个答案:

答案 0 :(得分:4)

你差不多......

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

答案 1 :(得分:2)

在DataTrigger中添加一个setter

 <Setter Property="Foreground" Value="Red"/>