2010-12-03 115 views
0

我試圖在SelectedIndex在XAML中爲-1時設置WPF組合框的背景顏色。我試圖在觸發器中設置背景顏色,但我得到一個錯誤,告訴我我無法在觸發器的屬性中設置綁定。WPF ComboBoxItem當組合框SelectedIndex爲-1時,背景更改

感謝

<ComboBox 
        x:Name="cbFormNameList" 
        ItemsSource="{Binding}" 
        DisplayMemberPath="Name" 
        SelectedValuePath="Name"> 
       <ComboBox.Style> 
        <Style TargetType="{x:Type ComboBoxItem}"> 
         <Style.Triggers> 
          <Trigger Property="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedIndex}" Value="-1"> 
           <Setter Property="Background" Value="#FFFAFFA9"/> 
          </Trigger> 
         </Style.Triggers> 
        </Style> 
       </ComboBox.Style> 
      </ComboBox> 

回答

2

你的風格在ComboBoxItem,而不是組合框本身的針對性。當沒有選擇任何東西時,下面將改變組合框的背景:

<ComboBox.Style> 
    <Style TargetType="{x:Type ComboBox}"> 
     <Style.Triggers> 
      <Trigger Property="SelectedIndex" Value="-1"> 
       <Setter Property="Background" Value="#FFFAFFA9"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</ComboBox.Style> 

樣式應該直接指向組合框。

+0

哇,那很容易。謝謝 – sondlerd 2010-12-03 17:07:09

2

您的TargetType和觸發器屬性是錯誤的。嘗試以下,它確實有效。當您更改選擇時,組合框將從黃色開始變化。

<ComboBox> 
     <ComboBoxItem> 
      Test 
     </ComboBoxItem> 
     <ComboBox.Style> 
      <Style TargetType="ComboBox"> 
       <Style.Triggers> 
        <Trigger Property="SelectedIndex" Value="-1"> 
         <Setter Property="Background" Value="#FFFAFFA9"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ComboBox.Style> 
    </ComboBox> 
相關問題