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);
Share:
23,802
CHANDRA
Author by

CHANDRA

Updated on July 05, 2022

Comments

  • CHANDRA
    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.
    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
    CHANDRA over 11 years
    var itemsInFirstRow = LayoutRoot.Children.Where(i => Grid.GetRow(i) == 0); It is showing error.
  • Clemens
    Clemens over 11 years
    You would have to write LayoutRoot.Children.Cast<UIElement>().Where(i => Grid.GetRow(i) == 0).
  • xr280xr
    xr280xr over 9 years
    I 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?