Come è spesso il modo che ho trovato la mia soluzione per questo:
Aggiungere un evento MouseLeftButtonUp al DataGrid:
<data:DataGrid x:Name="dgTaskLinks"
ItemsSource="{Binding TaskLinks}"
SelectedItem="{Binding SelectedTaskLink, Mode=TwoWay}"
MouseLeftButtonUp="dgTaskLinks_MouseLeftButtonUp"
>...
E walk the visual tree per ottenere la riga griglia di dati:
private void dgTaskLinks_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
///get the clicked row
DataGridRow row = MyDependencyObjectHelper.FindParentOfType<DataGridRow>(e.OriginalSource as DependencyObject);
///get the data object of the row
if (row != null && row.DataContext is TaskLink)
{
///toggle the IsSelected value
(row.DataContext as TaskLink).IsSelected = !(row.DataContext as TaskLink).IsSelected;
}
}
Una volta trovato, è un semplice approccio per attivare la proprietà IsSelected associata :-)
Spero che questo aiuti qualcun altro.
fonte
2009-11-26 16:27:24
Si desidera commutare quando si fa nuovamente clic sulla riga? C'è un posto sulla fila dove fare clic non dovrebbe avere questo effetto? – AnthonyWJones