/ / Trigger per disabilitare e abilitare il pulsante - wpf, pulsante, trigger, stili

Trigger per disabilitare e abilitare il pulsante - wpf, pulsante, trigger, stili

Ho un elenco di elementi in datagrid WPF. Come fonte uso ObservableCollection. Una delle colonne è anche il binding della casella di controllo alla proprietà bool della raccolta. Nella stessa finestra, fuori dalla griglia, ho anche un pulsante. Voglio che il pulsante sia disabilitato se non ci sono record con la casella spuntata = tutti gli oggetti hanno la proprietà bool impostata come falsa.

Penso che non sarebbe un problema farlo in codebehind ma sto provando a farlo in modo wpf usando stili, trigger ecc. Ma non so come farlo.

risposte:

2 per risposta № 1

Suggerirei di utilizzare l'approccio MVVM, che implica la creazione di un Command che è DataBound al Button. Se non stai già utilizzando un framework MVVM, ce ne sono diversi là fuori.

In Prism (una possibilità) DelegateCommand ha un CanExecute delegato che è possibile implementare. Questo CanExecute il metodo dovrebbe quindi valutare il tuo ObservableCollection di articoli e decidere se il Command può essere eseguito (abilitato) o meno (disabilitato). Se questo metodo restituisce false, il pulsante verrà disabilitato.

Tutti gli altri framework MVVM avranno un simile Command costruire.

Vi è una grande documentazione di questa e di altre attività correlate a MVVM nella documentazione di Prism. È possibile trovare la documentazione e gli esempi specifici del comando Qui.