Ho impostato l'origine elementi del mio Datagrid WPF in un elenco di oggetti restituiti dal mio DAL. Ho anche aggiunto una colonna in più che contiene un pulsante, la xaml è sotto.DataGrid WPF - Pulsante in una colonna, ottenendo la riga da cui proviene il gestore eventi Click
<toolkit:DataGridTemplateColumn MinWidth="100" Header="View">
<toolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="Button_Click">View Details</Button>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>
Questo rende bene. Tuttavia sul metodo Button_Click, c'è un modo per ottenere la riga sul datagrid in cui risiede il pulsante? Più in particolare, una delle proprietà dei miei oggetti è "Id", e mi piacerebbe poterlo trasferire nel costruttore di un altro modulo nel gestore di eventi.
private void Button_Click(object sender, RoutedEventArgs e)
{
//I need to know which row this button is on so I can retrieve the "id"
}
Forse ho bisogno di qualcosa in più nel mio XAML, o forse ho intenzione di questo in modo indiretto? Qualsiasi aiuto/consiglio apprezzato.
Il modo ideale per fare questo genere di cose è usare i comandi (in pratica pattern MVVM) è possibile creare una virgola nd nel tuo oggetto dati (ViewModel) e chiama Button.Command, in modo che non ci sia alcun codice dietro come Button clic. –
puoi dimostrarlo facendo un comando? –
@JobiJoy: ne hai un esempio utilizzando un comando/RelayCommand? Sto provando poche cose ma non riesco a farlo funzionare .. – VoodooChild