問題は、グリッドの行が右クリックされると、選択された項目がnullになることです。任意の行が右クリックされたときにグリッドの行を選択するにはどうすればよいですか?
ありがとうジャマル
問題は、グリッドの行が右クリックされると、選択された項目がnullになることです。任意の行が右クリックされたときにグリッドの行を選択するにはどうすればよいですか?
ありがとうジャマル
解決策に問題があるのではないかと思います。行がロードされるたびにイベントハンドラーが追加されるため、行が再利用されると、イベントハンドラーが蓄積される可能性があります。行がアンロードされたら、イベントハンドラーを削除することをお勧めします。これが私の提案されたコードです:
private void dg_LoadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.MouseRightButtonDown += new MouseButtonEventHandler(Row_MouseRightButtonDown);
}
void Row_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
dg.SelectedItem = ((sender) as DataGridRow).DataContext;
}
// new portion
private void dg_UnloadingRow(object sender, DataGridRowEventArgs e)
{
e.Row.MouseRightButtonDown -= new MouseButtonEventHandler(Row_MouseRightButtonDown);
}