Sto utilizzando il modello M-V-VM in un'app WPF. Collego ViewModel a ContentControl e utilizzo di un modello dati definito nelle risorse della finestra per eseguire il rendering della vista (un controllo utente) per quel ViewModel.Collegamento a un comando in un datagrid
Nel ViewModel, ho una collezione di articoli. Collego questa raccolta alla griglia di dati fornita nel toolkit WPF. Anche nel modello di vista, ho un comando RemoveItem definito che accetta un argomento per l'ID dell'articolo da rimuovere.
Come collegarmi a tale comando nella griglia di dati? Il contesto dei dati della griglia è tale raccolta, quindi qualcosa come:
<Button Command="{Binding Path=RemoveCommand}" CommandParameter="{Binding Path=id}">X</Button>
non funziona - non riesce a trovare il comando. Penso di aver bisogno di legare RelativeSource, ma come sarebbe? Il tipo di antenato sarebbe UserControl o ContentControl? Dov'è il mio ViewModel residente come DataContext?
O sono via da qui?
Impressionante. Grazie, Kent! –
Benvenuto. Un altro modo per farlo è quello di esporre una raccolta di modelli di visualizzazione figlio piuttosto che una raccolta di elementi di dati. Quindi, quei modelli di visualizzazione figlio possono avere una proprietà che espone il comando, salvandoti dall'introduzione di collegamenti fragili come questi. –
Grazie, questo ha risolto il mio problema. –