[英]Conditional style based on TextBlock.Text Property?
我正在嘗試根據Text屬性有條件地設置文本塊的格式,但無法正常工作:
<Style x:Key="StatusEnumTextStyle" TargetType="TextBlock" >
<Style.Triggers>
<DataTrigger Binding="{Binding Text}" Value="InProgress">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
<TextBlock Text="InProgress" Style="{StaticResource StatusEnumTextStyle}"/>
但是我收到一個綁定錯誤:
System.Windows.Data Error: 40 : BindingExpression path error: 'Text' property not found on 'object' ''NotifierViewModel' (HashCode=43600526)'. BindingExpression:Path=Text; DataItem='VM' (HashCode=43600526); target element is 'TextBlock' (Name=''); target property is 'NoTarget' (type 'Object')
好吧,我看到觸發器嘗試獲取String.Text,但是如何為觸發器使用TextBlock的屬性?
背景:基本上,我希望基於一個名為“ StatusEnum”的枚舉的條件樣式,但不依賴於更改的變量名,因為如果一個人期望一個名為“ CurrentStatusEnum”的變量,而另一個變量是var名稱,則我將需要兩種相似的樣式不同,例如“ NewStatusEnum”。 借助匹配“文本”之類的屬性,每當我使用TextBlock時,我都可以使用相同的樣式
如下更新您的DataTrigger綁定:
<Style.Triggers>
<DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Self}}" Value="InProgress">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.