2014-08-29 47 views
0

我有一個按鈕,其內容屬性根據ViewModel設置的特定條件不斷變化。本質上它被設置爲0到1000之間的一個值。基於Content或CustomDP值設置按鈕的背景

我也有另一個自定義DP屬性在同一個按鈕的值可以設置爲某個枚舉。

我所試圖解決如下(可惜不知道我應該怎麼去了解它):

如果我的按鈕含量值是0 - 按鈕的背景應該是灰色的。 如果我的按鈕內容值爲1 - 按鈕的背景應爲黃色。 如果我的按鈕內容值爲1 &「自定義DP」設置了一個值(而不是默認值) - 背景應該更改爲「紅色」。

如果我的問題陳述只是基於內容上設置的整數設置背景 - 我可以很容易地使用轉換器(字符串來刷)並設置我的背景。但最後一個條件,現在設置我的背景基於自定義DP值進來 - 不知道如何解決...

有人可以請建議我一種方法 - 示例代碼來解決這樣的問題。

回答

1
<Button Content="0"> 
     <Button.Style> 
      <Style TargetType="Button"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Content}" Value="0"> 
         <Setter Property="Background" Value="Gray"/> 
        </DataTrigger> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Content}" Value="1"> 
         <Setter Property="Background" Value="Yellow"/> 
        </DataTrigger> 
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions> 
          <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="1"/> 
          <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=YourDP}" Value="YourValue"/> 
         </MultiDataTrigger.Conditions> 
         <MultiDataTrigger.Setters> 
          <Setter Property="Background" Value="Red"/> 
         </MultiDataTrigger.Setters> 
        </MultiDataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 
    </Button> 
0

您可以使用多條件觸發器或多數據觸發器。看到這個link和這個link

+0

非常感謝你 – Patrick 2014-08-29 05:58:19