如何通过行和列索引以编程方式访问WPF网格中的Control?

Mat*_*ias 38 wpf grid row

一旦将控件添加到WPF网格,有没有办法通过行和/或列索引以编程方式访问它们?有点像:

 var myControl = (object)MyGrid.GetChild(int row, int column);
Run Code Online (Sandbox Code Playgroud)

... GetChild我希望我拥有的方法在哪里!

ito*_*son 68

没有内置的方法,但你可以通过查看Children集合轻松完成:

myGrid.Children
      .Cast<UIElement>()
      .First(e => Grid.GetRow(e) == row && Grid.GetColumn(e) == column);
Run Code Online (Sandbox Code Playgroud)

  • 虽然 - 可能值得返回完整的集合,但从技术上讲,您可以在单个网格"单元格"中拥有多个元素,因为附加属性不会检查它. (7认同)
  • 谢谢,里德,好点 - 可以通过使用Where而不是First来轻松完成. (2认同)

Car*_*rlo 9

这个答案对你有帮助

int rowIndex = Grid.GetRow(myButton);

RowDefinition rowDef = myGrid.RowDefinitions[rowIndex];
Run Code Online (Sandbox Code Playgroud)