La habilitación de un botón en WPF dependiendo del ListBox.SelectedIndex

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Tengo un lugar clásico de la interfaz de usuario de la situación - dos Listbox llamado SelectedItems y AvailableItems - la idea de que los elementos que ya han seleccionado a vivir en SelectedItems, mientras que los artículos que están disponibles para añadir a SelectedItems (es decir,cada artículo que no está ya allí) viven en AvailableItems.

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

Es posible que en WPF para crear un estilo/activar para activar o desactivar los botones mover dependiendo de que algo esté seleccionado en ListBox? SelectedItems es en el lado izquierdo, por lo que el < botón mover el elemento seleccionado AvailableItems a esa lista.Sin embargo, si no hay elementos seleccionados (AvailableItems.SelectedIndex == -1), Quiero que este botón esté desactivado (IsEnabled == false) - y la otra manera alrededor de la otra lista con los botones/.

Es posible hacer directamente en XAML, o tengo que crear una lógica compleja en el código subyacente para manejarlo?

¿Fue útil?

Solución

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>

Otros consejos

Menos código, solución:

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

Si count es 0, que parece el mapa a falso, a > 0 a la verdad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top