2011-03-29 66 views
0

我有一個ComboBoxStyle的項目。wpf:添加樣式到ComboBoxItem槽綁定

<Style> 
    <Style.Triggers> 
     <Trigger Property="Tag" Value="false"> 
      <Setter Property="Background" Value="LightBlue"/> 
      <Setter Property="Foreground" Value="BlueViolet"/> 
     </Trigger> 

     <Trigger Property="Tag" Value="true"> 
      <Setter Property="Background" Value="LightGreen"/> 
      <Setter Property="Foreground" Value="Green"/> 
     </Trigger> 
    </Style.Triggers> 
    </Style> 

爲了嵌入這個Style我接下來會寫:

<ComboBox> 
     <ComboBoxItem Content="xxxx" Tag="true"/> 
     <ComboBoxItem Content="yyyy" Tag="false"/> 
</ComboBox> 

,但我怎麼能嵌入這個Style的情況下,我用DataContext結合的風格是通過這種方式使用Style.Triggers定義?

在此先感謝。

+0

我認爲觸發器應該仍然工作,不論您手動或通過設置綁定變量的值。 – publicgk 2011-03-29 20:26:09

回答

1

你可以嘗試添加一個風格二傳手到ComboBox的資源:

<ComboBox.Resources> 
    <Style TargetType="{x:Type ComboBoxItem}"> 
     <Setter Property="Tag" Value="{Binding SomeValue}" /> 
    </Style> 
</ComboBox.Resources> 
+0

我迷路了... 我有一些值的列表是每個值實際綁定到ComboBoxItem。 正如我所說的,綁定是由combo.DataContext = list ... 我在哪裏把標籤屬性? 謝謝 – Igal 2011-03-29 21:14:49

+1

@ user301639標記值是值列表的一部分嗎?如果是這樣,這段代碼會將每個ComboBoxItem放在ComboBox中併爲該Tag創建一個綁定。如果您只是試圖爲其他行交替使用Style,則最好將ComboBox的AlternationCount設置爲2,並根據AlternationIndex構建觸發器 – Rachel 2011-03-30 13:02:10

+0

感謝您的想法,在msdn站點中找到了一些示例,解決了我的問題:) – Igal 2011-03-30 22:42:39