wpf listbox

combobox wpf



Habilitar un botón en WPF según ListBox.SelectedIndex (2)

Menos solución de código:

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

Si count es 0 que parece correlacionar con falso,> 0 a verdadero.

Tengo una situación de UI bastante clásica: dos ListBoxes llamados SelectedItems y AvailableItems , con la idea de que los elementos que ya ha seleccionado viven en SelectedItems , mientras que los elementos que están disponibles para agregar a SelectedItems (es decir, cada elemento que no está ya allí) ) vive en AvailableItems .

Además, tengo los botones < y > para mover la selección actual de una lista a la otra (además de hacer doble clic, que funciona bien).

¿Es posible en WPF configurar un estilo / disparador para habilitar o deshabilitar los botones de movimiento dependiendo de cualquier cosa que se seleccione en ListBox? SelectedItems está en el lado izquierdo, por lo que el botón < moverá los AvailableItems seleccionados a esa lista. Sin embargo, si no se seleccionan elementos ( AvailableItems.SelectedIndex == -1 ), quiero que se deshabilite este botón ( IsEnabled == false ), y al revés para la otra lista / botón.

¿Es posible hacerlo directamente en XAML, o necesito crear una lógica compleja en el código subyacente para manejarlo?


Aquí está tu solución.

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