Aktivieren einer Schaltfläche in WPF abhängig von ListBox.SelectedIndex


Answers

Weniger Code Lösung:

<Button Name="button1" IsEnabled="{Binding ElementName=listBox1, Path=SelectedItems.Count}" />

Wenn count 0 ist, wird false angezeigt,> 0 true.

Question

Ich habe eine ziemlich klassische Benutzeroberflächensituation - zwei ListBoxen namens SelectedItems und AvailableItems - die Idee ist, dass die Elemente, die Sie bereits ausgewählt haben, in SelectedItems , während die Elemente zum Hinzufügen zu SelectedItems verfügbar sind (dh jedes Element, das nicht bereits dort ist ) lebe in AvailableItems .

Außerdem habe ich die Schaltflächen < und > , um die aktuelle Auswahl von einer Liste in die andere zu verschieben (zusätzlich zum Doppelklick, was gut funktioniert).

Ist es in WPF möglich, einen Stil / Trigger einzurichten, um die Verschiebungsschaltflächen zu aktivieren oder zu deaktivieren, je nachdem, was in ListBox ausgewählt ist? SelectedItems befindet sich auf der linken Seite. Mit der < -Taste werden die ausgewählten AvailableItems in diese Liste verschoben. Wenn jedoch keine Elemente ausgewählt sind ( AvailableItems.SelectedIndex == -1 ), soll diese Schaltfläche deaktiviert sein ( IsEnabled == false ) - und umgekehrt für die andere Liste / Schaltfläche.

Ist das direkt in XAML möglich, oder muss ich eine komplexe Logik im Codebehind erstellen, um damit umzugehen?