问题是,每当右键单击网格的行时,所选的项目为null。当右键单击任何行时,我如何将网格的行选择?

谢谢Jamal

有帮助吗?

解决方案

我认为解决方案可能有问题。每次加载一行时,都会添加一个事件处理程序,因此,如果该行重复使用,则可以累积事件处理程序。我建议在行卸载时删除活动处理程序。这是我建议的代码:

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);
}

其他提示

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top