3

在我看来,我有下一个代码:

<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 更改为斜体,因此整个触发器可以正常工作。怎么了?

4

1 回答 1

9

属性的本地分配比在触发器中设置值具有更高的优先级。

此外,您正在使用绑定 (Path=FileName) 来设置 TextBlock 的文本属性。因此更改触发器中的文本不会影响属性。

当您使用绑定时。如果属性“无标题”为“真”,我将更改属性“文件名”以返回“无文件名”。

于 2010-05-31T09:54:38.787 回答