在触发器中更改TextBlock.Text不起作用

时间:2010-05-31 09:45:16

标签: wpf styles textblock datatrigger

我的观点中有下一个代码:

<Style x:Key="documentFileNameStyle">
    <Setter Property="TextBlock.Foreground" Value="Gray"/>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Untitled}" Value="True">
            <Setter Property="TextBlock.FontStyle" Value="Italic"/>
            <Setter Property="TextBlock.Text" Value="no file name"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

<DataTemplate x:Key="documentTemplate">            
    <TextBlock Text="{Binding Path=FileName}" Style="{StaticResource documentFileNameStyle}"/>                                
</DataTemplate>

但是将TextBlock.Text设置为字符串不起作用。 TextBlock.FontStyle更改为Italic,因此整个触发器正常工作。有什么问题?

1 个答案:

答案 0 :(得分:9)

属性的本地分配优先于设置触发器中的值。

您还使用Binding(Path = FileName)来设置TextBlock的Text-Property。因此,更改触发器中的文本不会影响属性。

正在使用Binding。如果Property“Untitled”为“true”,我会更改Property“FileName”以返回“no file name”。