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

StackOverflow https://stackoverflow.com/questions/17906

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe ein eher klassisches UI-situation - zwei Listboxen benannt SelectedItems und AvailableItems - die Idee, dass die Elemente, die Sie zuvor markiert haben, Leben in SelectedItems, während die Elemente, die verfügbar sind, für das hinzufügen zu SelectedItems (d.h.jedes Element, das nicht bereits in es) Leben AvailableItems.

Auch habe ich die < und > Tasten verschieben Sie die aktuelle Auswahl aus einer Liste in die andere (neben einem Doppelklick, die gut funktioniert).

Ist es möglich in WPF einrichten style/trigger, um aktivieren oder deaktivieren Sie die verschieben-Schaltflächen hängt von nichts ausgewählt wird, die entweder in ListBox? SelectedItems auf der linken Seite, so dass die < Taste verschieben Sie das ausgewählte AvailableItems zu dieser Liste.Jedoch, wenn keine Elemente ausgewählt sind (AvailableItems.SelectedIndex == -1), Möchte ich diese Schaltfläche deaktiviert werden (IsEnabled == false) - und Umgekehrt für die andere Liste/ - Taste.

Ist dies möglich, direkt in XAML, oder brauche ich, um erstellen Sie komplexe Logik in der codebehind zu Griff es?

War es hilfreich?

Lösung

Hier ist Ihre Lösung.

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

Andere Tipps

Weniger code-Lösung:

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

Wenn count 0 ist, scheint Karte false, > 0 zu wahren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top