2012-06-06 41 views
0

我有WPF中的ListBox控件,它由一些可觀察的類型集合:「總線」填充。WPF:從代碼隱藏更改列表框項目的Foreground屬性

公交是包含兩個屬性

  1. BusName類
  2. BusType

因此基於該bustype在這個項目應該有任何的兩種顏色

爲總線類型:

  1. 夢之 - 綠色
  2. 非夢之 - 藍

所有這一切都應該從WPF代碼發生後面。

沒有人有想法如何做到這一點.. [我不是在WPF專家..一個小細節會更有益。]

+0

爲什麼要在這個後面的代碼在XAML中使用觸發器非常容易實現 – Firoz

回答

0

您也可以通過代碼做同樣的背後..我們有以下方式實現這一目標。我希望這會幫助你..

DataTrigger datatrigger = new DataTrigger(); 
datatrigger.Binding = new Binding("BusTypeID"); 
datatrigger.Value = 1; 
datatrigger.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Green)); 
listbox.Triggers.Add(datatrigger); 

DataTrigger datatrigger2 = new DataTrigger(); 
datatrigger2.Binding = new Binding("BusTypeID"); 
datatrigger2.Value = 2; 
datatrigger2.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Red)); 
listbox.Triggers.Add(datatrigger2); 
0
爲BusType

組整數值,讓我說, 臥鋪= 1 非臥鋪= 2

只需將您的收藏添加屬性BusTypeID

<Style.Triggers> 
      <DataTrigger Binding="{Binding BusTypeID}" Value="1"> 
        <Setter Property="Background" Value="Green"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding BusTypeID}" Value="2"> 
        <Setter Property="Background" Value="Blue"/> 
      </DataTrigger> 

    </Style.Triggers> </Style > 
+0

請您告訴我如何使用代碼隱藏實現這一點。 –

相關問題