如何在 Silverlight 中查找可见的 DataGrid 行?
最佳答案
我不确定您所说的可见 DataGridRow
是什么意思,但是您可以通过在可视化树中找到它们来获取当前生成的所有 DataGridRow
。这基本上会为您提供所有可见的 DataGridRow
,并且可能还会提供一些,因为 DataGrid
示例
private List<DataGridRow> GetDataGridRows(DataGrid dataGrid)
{
return GetVisualChildCollection<DataGridRow>(c_dataGrid);
}
GetVisualChildCollection
public static List<T> GetVisualChildCollection<T>(object parent) where T : FrameworkElement
{
List<T> visualCollection = new List<T>();
GetVisualChildCollection(parent as DependencyObject, visualCollection);
return visualCollection;
}
private static void GetVisualChildCollection<T>(DependencyObject parent, List<T> visualCollection) where T : FrameworkElement
{
int count = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < count; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
if (child is T)
{
visualCollection.Add(child as T);
}
else if (child != null)
{
GetVisualChildCollection(child, visualCollection);
}
}
}
关于c# - 如何在 Silverlight 中查找可见的 DataGrid 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5079130/