Activation d'un bouton dans WPF en fonction de la liste.SelectedIndex
j'ai une situation D'interface utilisateur assez classique - deux listes de diffusion nommées SelectedItems
et AvailableItems
- l'idée étant que les éléments que vous avez déjà choisi de vivre dans SelectedItems
, alors que les éléments qui sont disponibles pour ajouter à SelectedItems
(c'est à dire que chaque élément qui n'est pas déjà là) vivent dans AvailableItems
.
J'ai aussi le <
et >
boutons pour déplacer la sélection d'une liste à l'autre (en plus de double cliquant, ce qui fonctionne très bien).
est-ce possible? dans WPF pour mettre en place un style/trigger pour activer ou désactiver les boutons move en fonction de tout ce qui est sélectionné dans l'une ou L'autre liste? SelectedItems
est sur le côté gauche, donc le <
bouton va déplacer le AvailableItems
à cette liste. Cependant, si aucun item n'est sélectionné (AvailableItems.SelectedIndex == -1
), je veux que ce bouton sera désactivé (IsEnabled == false
) - et dans l'autre sens pour l'autre liste/bouton.
est - ce possible de le faire directement dans XAML, ou Ai-je besoin de créer une logique complexe dans le codebehind pour gérer il?
2 réponses
Voici votre solution.
<Button Name="btn1" >click me
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger
Binding ="{Binding ElementName=list1, Path=SelectedIndex}"
Value="-1">
<Setter Property="Button.IsEnabled" Value="false"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
moins de solution de code:
<Button Name="button1" IsEnabled="{Binding ElementName=listBox1, Path=SelectedItems.Count}" />
si le compte est 0 qui semble correspondre à false, > 0 à true.