我有以下代码:
<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 更改为斜体,因此整个触发器正常工作。怎么了?
最佳答案
属性的本地分配比在触发器中设置值具有更高的优先级。
此外,您正在使用 Binding (Path=FileName) 来设置 TextBlock 的 Text-Property。因此更改触发器中的文本不会影响属性。
当您使用绑定(bind)时。如果属性“Untitled”为“true”,我会更改属性“FileName”以返回“无文件名”。
关于wpf - 在触发器中更改 TextBlock.Text 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2942690/