【发布时间】:2011-08-19 20:37:00
【问题描述】:
我的 WPF“窗口”中有以下网格(是的类窗口);
<Grid Name="RequiredGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
根据传入窗口的内容,我想一次将项目添加到该网格中的一行。即,我想在左列中添加一个标签,在右列中添加一个文本框。我相信我知道如何通过在后面的代码中执行以下操作来添加新行以保存新数据:
RequiredGrid.RowDefinitions.Add(new RowDefinition());
问题是,在我创建了标签和文本框之后。
Label AttrLabel = new Label();
TextBox AttrTextBox = new TextBox();
我真的不知道如何将它放入窗口以便显示。我看到一些线程说,做这样的事情:
this.Controls.Add(AttrLabel);
this.Controls.Add(AttrTextBox);
这有两个问题。 1)我的 Window 类没有这个“控件”属性或其他任何东西。并且 2) 这不会帮助我指定每个 UI 项的行和列。
现在在 XAML 中,我可以很容易地用这样的方式指定行和列:
<Label Grid.Column="0" Grid.Row="0"/>
不过,这违背了我的意图的“动态性”。有谁知道我如何让动态创建的 UI 元素显示在我的窗口中并指定它将显示在网格中的哪一行和哪一列。
【问题讨论】:
标签: wpf user-interface dynamic grid