根据XML数据更改文本块背景

时间:2015-11-12 15:14:53

标签: c# xml wpf

所以我有一个xml文件,其中包含某些直升机的状态。 xml文件的一部分保存其天气状态。如果他们的天气状态为黄色,我希望绑定的文本块的背景更改为黄色。

我找到了一个为数据网格做到这一点的答案。原理是一样的吗?很抱歉没有代码,我是通过移动应用程序执行此操作的。

1 个答案:

答案 0 :(得分:1)

通常,您会将数据绑定到Style上的DataTrigger以格式化TextBlock的背景。像这样:

<TextBlock Text={Binding Path=TextProperty}>
    <TextBlock.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Weather}" Value="XXX">
                    <DataTrigger.Setters>
                        <Setter Property="Background" Value="Yellow" />
                    </DataTrigger.Setters>
                </DataTrigger>
           </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

使用XPath Binding,您可能需要完整的方式并将其写为:

<TextBlock>
    <TextBlock.Text>
        <Binding XPath="/Your/Xml/Path" />
    </TextBlock.Text>
    <TextBlock.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Value="XXX">
                    <DataTrigger.Binding>
                        <Binding XPath="/Path/To/Your/Weather/Property" />
                    </DataTrigger.Binding>
                    <DataTrigger.Setters>
                        <Setter Property="Background" Value="Yellow" />
                    </DataTrigger.Setters>
                </DataTrigger>
           </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>