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

时间:2017-05-03 20:40:59

标签: 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>

1 个答案:

答案 0 :(得分:13)

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

<Grid x:Name="TheGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="1"/>  
    </Grid.RowDefinitions>
</Grid>  

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

TheGrid.RowDefinitions.Add(new RowDefinition());

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

var uc = new MyUserControl();
TheGrid.Children.Add(uc);
Grid.SetRow(uc, TheGrid.RowDefinitions.Count - 1);