当另一个Texblock值更改时,更改Texblock样式

问题描述

当某些文本块更改时,我试图更改另一个文本块的样式。我正在尝试使用datatrigger。这是正确的方法吗?这是我的代码

    </TextBlock>
    <TextBlock Name="txtChangeto" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="48" Text="2">
        <TextBlock.Style>
            <Style targettype="TextBlock">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=txtChange,Path=Text,UpdateSourceTrigger=PropertyChanged}"  Value="">
                        <Setter Property="FontWeight" Value="Bold" />
                        <Setter Property="Foreground" Value="red"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </TextBlock.Style>
    </TextBlock>
    <Button x:Name="btnChangeValue" Content="Change Value" Click="btnChangeValue_Click"></Button>
</StackPanel>

谢谢。

解决方法

您的代码可以工作,但是我建议您使用MVVM,以便样式由ViewModel决定,而不是像现在一样由View决定。第一个TextBlock应该更改ViewModel中的属性,第二个应该基于ViewModel状态确定其状态。以您的方式引用其他控件会使代码真正易碎。