如何在窗口控件Grid(而不是gridview或datagrid)的指定行和列中添加控件?在C#
假设我们知道控件所在的行和列,如何通过网格行和列获取控件?
由于
答案 0 :(得分:1)
嗯,你可以很容易地用LINQ查询来做到这一点:
public IEnumerable<UIElement> GetElementsAtPosition(Grid grid, int row, int column)
{
return grid.Children.OfType<UIElement>().Where(c => Grid.GetRow(c) == row && Grid.GetColumn(c) == column);
}
这需要返回IEnumerable
,因为在给定的行和附近可以存在多个控件。列交叉点。如果您正在进行行/列跨越,这也不是非常可靠(它不会捕获元素从不同的行或列开始并跨越它的情况)。
编辑感谢@wpfwannabe完成此工作所需的正确LINQ运算符。我仍然难以理解UIElementCollection没有实现IEnumerable&lt; UIElement&gt ;.