积极答复者
关于Datagrid遍历的问题 在线等

问题
-
for (int i = 0; i < grdMaster.Items.Count; i++)
{
DataRowView drv = (DataRowView)grdMaster.Items[i];
DataGridRow dgr = (DataGridRow)grdMaster.ItemContainerGenerator.ContainerFromItem(drv);
}
一个很简单的遍历Datagrid代码,为什么有的时候datagridrow会取到null?而且每次null的时候i的值还不一样,好奇怪。。
用containerfromindex也一样- 已编辑 iammac 2010年3月11日 2:04
答案
-
有时如果加入了数据模板的话,不一定能每一次都能取得到的。你可以偿试用这种方法。public static T GetTemplatedAncestor<T>(FrameworkElement element) where T : FrameworkElement{if (element is T){return element as T;}FrameworkElement templatedParent = element.TemplatedParent as FrameworkElement;if (templatedParent != null){return GetTemplatedAncestor<T>(templatedParent);}return null;}
- 已标记为答案 Allen Chen - MSFTModerator 2010年3月26日 6:14
全部回复
-
有时如果加入了数据模板的话,不一定能每一次都能取得到的。你可以偿试用这种方法。public static T GetTemplatedAncestor<T>(FrameworkElement element) where T : FrameworkElement{if (element is T){return element as T;}FrameworkElement templatedParent = element.TemplatedParent as FrameworkElement;if (templatedParent != null){return GetTemplatedAncestor<T>(templatedParent);}return null;}
- 已标记为答案 Allen Chen - MSFTModerator 2010年3月26日 6:14