我在这个窗口中有一个带有按钮和网格的窗口,其中设置了行和列。我尝试创建一个按钮,单击该按钮时会向网格添加另一行,然后将用户控件分配给该行。
我发现了一些在线进行数据网格化的方法,但没有为网格添加行定义的方法。任何人都可以为此协助代码吗?
到目前为止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>
答案 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);