how to get grid children by its row and column in wpf?
23,802
Filter the Grid.Children
based on what Grid.GetRow
and GetColumn
returns for every child.
e.g.
var itemsInFirstRow = LayoutRoot.Children
.Cast<UIElement>()
.Where(i => Grid.GetRow(i) == 0);
Author by
CHANDRA
Updated on July 05, 2022Comments
-
CHANDRA almost 2 years
<Grid x:Name="LayoutRoot" HorizontalAlignment="Center" VerticalAlignment="Center" > <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Button Width="150" Height="50" x:Name="Btn1" Content="Button1" Grid.Row="0" Grid.Column="0"/> <Button Width="150" Height="50" x:Name="Btn2" Content="Button2" Grid.Row="0" Grid.Column="1"/> <Button Width="150" Height="50" x:Name="Btn3" Content="Button3" Grid.Row="2" Grid.Column="0"/> <Button Width="150" Height="50" x:Name="Btn4" Content="Button4" Grid.Row="2" Grid.Column="1"/> </Grid>
C# code in wpf
Visual childVisual = (Visual)VisualTreeHelper.GetChild(LayoutRoot,0);
With above code i can get the First child of the grid(LayoutRoot).But i want to get grid child by it's rows or columns. What should i do for that.
Thanks in Advance.
-
H.B. over 11 years@ChandruA: Seen the example? In any case you are probably doing something wrong if you need to find UI elements, your code probably needs more data binding and commands.
-
CHANDRA over 11 yearsvar itemsInFirstRow = LayoutRoot.Children.Where(i => Grid.GetRow(i) == 0); It is showing error.
-
Clemens over 11 yearsYou would have to write
LayoutRoot.Children.Cast<UIElement>().Where(i => Grid.GetRow(i) == 0)
. -
xr280xr over 9 yearsI agree with H.B. This isn't a great approach. What happens if later a row or column is added to or removed from the grid. Would you or another developer remember or know to go change that hard coded number?