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>