2010-12-03 9 views
0

J'essaie de définir la couleur d'arrière-plan d'un WPF ComboBox lorsque l'élément SelectedIndex est -1 dans XAML. J'ai tenté de définir la couleur d'arrière-plan dans un déclencheur mais une erreur me dit que je ne peux pas définir une liaison dans une propriété d'un déclencheur.WPF ComboBoxItem Modification d'arrière-plan lorsque ComboBox SelectedIndex est -1

grâce

<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> 

Répondre

2

Votre style est à Ciblée ComboBoxItem plutôt que le combobox lui-même. Le ci-dessous va changer l'arrière-plan de l'ComboBox quand rien est sélectionné:

<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> 

Le style devrait cibler le ComboBox directement.

+0

wow, c'était facile. Merci – sondlerd

2

Vos propriétés TargetType et Trigger sont erronées. Essayez ce qui suit, cela fonctionne. La liste déroulante commence jaune et change lorsque vous modifiez la sélection.

<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> 
Questions connexes