2015-04-12 58 views
0

這不是模板,它是我XAML文檔正文中的<Label>。請注意,標籤的內容設置爲「待處理」。這是監視服務器連接,並且在不同的時間,代碼隱藏可能會將內容的值更改爲CONNECTED或ERROR。發生這種情況時,我希望文本的顏色可以改變。我認爲這樣做,但它不......我得到的只是黑色文本。如何將DataTrigger綁定到非綁定屬性?

<Label x:Name="lbl_Connected" Content="PENDING" FontWeight="Bold" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Center"> 
    <Label.Style> 
     <Style TargetType="Label"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="CONNECTED"> 
        <Setter Property="Label.Foreground" Value="Green"></Setter> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="PENDING"> 
        <Setter Property="Label.Foreground" Value="Yellow"></Setter> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content.Value}" Value="ERROR"> 
        <Setter Property="Label.Foreground" Value="Red"></Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Label.Style> 
</Label> 

有人能告訴我應該怎麼做嗎?

回答

1

單從綁定的路徑中刪除「.value的」部分,即:

<DataTrigger Binding="{Binding RelativeSource={RelativeSource self}, Path=Content}" Value="CONNECTED"> 
    <Setter Property="Label.Foreground" Value="Green"></Setter> 
</DataTrigger> 

反正如果我是你,我會用綁定以設置標籤內容和converter處理前景色。

+0

我很親密!我今天早些時候才瞭解到DataTriggers! :) – davecove

+1

我想你會喜歡學習WPF ;-) –

+0

當然喜歡它比WinForms更好! – davecove

相關問題