获取Silverlight DataGrid中的行

本文关键字:DataGrid Silverlight 获取 | 更新日期: 2023-09-27 17:59:17

我正在尝试使用下面的代码,但由于ItemContainerGenerator 的原因,它不起作用

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

这只是一个解决方案吗?

如何修复?

获取Silverlight DataGrid中的行

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

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

我建议您为此编写一个扩展方法,它将增强代码的可读性,并且您可以轻松地重用它。