在Silverlight DataGrid中获取行

时间:2014-04-21 17:57:17

标签: c# silverlight datagrid

我正在尝试使用下面的代码但由于ItemContainerGenerator

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

Is this only one solution?

如何解决?

1 个答案:

答案 0 :(得分:1)

您必须从visual tree中选择它,DataGrid提供无法方便的访问权限。

var selectedRow = myGrid.GetVisualDescendants()
                        .OfType<DataGridRow>()
                        .Where( row => row.DataContext == myGrid.SelectedItem)
                        .SingleOrDefault();

我建议您为此编写扩展方法,它会增强代码的可读性,您可以轻松地重复使用。