在WPF窗口中以编程方式将行添加到网格

mrc*_*h09 10 c# wpf

我在这个窗口中有一个带按钮和网格的窗口,其中设置了行和列.我正在尝试创建一个按钮,单击该按钮将向网格添加另一行,然后将用户控件分配给该行.

我已经找到了一些方法来在线进行数据网格,但没有为网格添加行定义.任何人都可以为此协助代码吗?

WPF到目前为止:

<DockPanel>        
    <Button DockPanel.Dock="Top"  Height="22" x:Name="AddRow" Click="AddRow_Click">
        <TextBlock Text="Add Skill"/>
    </Button>
    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="1"/>
            <ColumnDefinition Width="1"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="1"/>  
        </Grid.RowDefinitions>
    </Grid>        
</DockPanel>
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 17

这不应该太困难.为简单起见,我将使用代码隐藏来说明.

<Grid x:Name="TheGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="1"/>  
    </Grid.RowDefinitions>
</Grid>  
Run Code Online (Sandbox Code Playgroud)

在按钮的单击处理程序中:

TheGrid.RowDefinitions.Add(new RowDefinition());
Run Code Online (Sandbox Code Playgroud)

然后只需将用户控件添加到网格中,并为其分配行号.

var uc = new MyUserControl();
TheGrid.Children.Add(uc);
Grid.SetRow(uc, TheGrid.RowDefinitions.Count - 1);
Run Code Online (Sandbox Code Playgroud)