2010-03-28 74 views
0

问题是,无论何时网格的行被右键单击,所选的项目都是空的。当任何行右键单击时,我会选择一个网格的行吗?在网格行上点击右键

感谢 贾马尔

+0

Silverlight 4?你在引用DataGrid? – AnthonyWJones 2010-03-28 13:10:17

+0

是脱灰。 – 2010-03-28 23:37:09

回答

1

我认为解决的办法可能有问题。每次加载一行都会添加一个事件处理程序,所以如果该行被重用,它可以累积事件处理程序。我建议在行被卸载时删除事件处理程序。这里是我的建议代码:

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