C# 获取Silverlight数据网格中的行

C# 获取Silverlight数据网格中的行,c#,silverlight,datagrid,C#,Silverlight,Datagrid,我试图使用下面的代码,但由于ItemContainerGenerator var selectedRow = (DataGridRow)myGrid.ItemContainerGenerator.ContainerFromItem(myGrid.SelectedItem); 如何修复它?您必须从可视化树中选择它,数据网格提供了不方便的访问 var selectedRow = myGrid.GetVisualDescendants() .Of

我试图使用下面的代码,但由于
ItemContainerGenerator

  var selectedRow = (DataGridRow)myGrid.ItemContainerGenerator.ContainerFromItem(myGrid.SelectedItem);


如何修复它?

您必须从
可视化树中选择它,
数据网格提供了不方便的访问

var selectedRow = myGrid.GetVisualDescendants()
                        .OfType<DataGridRow>()
                        .Where( row => row.DataContext == myGrid.SelectedItem)
                        .SingleOrDefault();
var selectedRow=myGrid.getVisualDescentants()
第()类
.Where(row=>row.DataContext==myGrid.SelectedItem)
.SingleOrDefault();
我建议您为此编写一个扩展方法,它将增强代码的可读性,并且您可以轻松地重用它。

因此,您声明“ItemContainerGenerator
是原因”您没有使用给定的代码行检索所选行。但你没有说明原因。这个问题——现在的情况——对任何有同样问题并寻求答案的人都没有帮助。请编辑您的问题,使其在这方面“完整”。并请添加链接解决方案的简短说明。