我有一個資料物件,其中包含一個字串資訊和一個狀態列舉。 我的目標是根據狀態值來設定一個文本塊的顏色。
資料模板:
<DataTemplate DataType="{x: Type interfaces_general1:AnalogPinData}" x:Key="analogSignalTestTemplate">
<StackPanel Orientation="Horizontal">/span>
< TextBlock Width="135" Text="{Binding Path=ThresholdDescriptor. Message}" Style="{StaticResource colorfulTextBlockStyleAnalogPin}" />。
</StackPanel>
</DataTemplate>/span>
樣式
<Style TargetType="{x: Type TextBlock}"/span> BasedOn="{StaticResource emphasizableTextBlock}"/span> x: Key="colorfulTextBlockStyleAnalogPin">。
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource /*need to get here to a data object property*/}, Path=? ?" Value="Info">
< Setter Property="Foreground" Value="Green" />
</DataTrigger>
< DataTrigger Binding="{Binding RelativeSource= /*need to get here to a data object property*/, Path=Text}" Value="警告">
< Setter Property="Foreground" Value="Orange" />
</DataTrigger>
</Style.Triggers>/span>
</Style>>
我怎樣才能對狀態屬性進行系結呢?
資料物件是:
public class AnalogPinData
{
// <summary>
//銷貨資訊
// </summary>
[PublicAPI]
public AnalogPin Pin { get; set; }
// <summary>
//閾值定義資訊
// </summary>
[PublicAPI]
public ThresholdDescriptor ThresholdDescriptor { get; set; }
}
public class ThresholdDescriptor ThresholdDescriptor; }
{
public Range { get; set; }
[PublicAPI]
public StatusIndicator Status { get; set; }
[PublicAPI] 。
public string Message { get; set; }
我需要在系結中設定Message和Status道具。
謝謝!
uj5u.com熱心網友回復:
由于模板的資料型別的實體是DataTemplate的DataContext,并且TextBlock是這個模板中的一個元素,TextBlock將隱含地繼承這個DataContext即。 例如,TextBlock的DataContext是AnalogPinData的實體。
因此,系結到TextBlock元素的DataContext解決了這個問題:
< Style TargetType="TextBlock">。
<Style.Triggers>>
<DataTrigger Binding="{Binding ThresholdDescriptor. Status}" Value="Info">。
< Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>/span>
</Style>>
另一種方法是直接在DataTemplate中定義觸發器:
<DataTemplate DataType="{x: Type interfaces_general1:AnalogPinData}" x:Key="analogSignalTestTemplate">
<TextBlock x: Name="StatusMessageTextBlock" Text="{Binding Path=ThresholdDescriptor. Message}" />。
<DataTemplate.Triggers>
<DataTrigger Binding="{binding ThresholdDescriptor. Status}" Value="Info">。
< Setter TargetName="StatusMessageTextBlock" 屬性="前景" 值="綠色" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>/span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312716.html
標籤:
