2 回答
TA贡献1828条经验 获得超4个赞
您可以将所有创建的 StackPanel 存储在列表中。
private void AddLineButton_Click(object sender, RoutedEventArgs e)
{
Create_line();
}
List<StackPanel> items;
private void Create_line()
{
RowDefinition gridRow = new RowDefinition();
gridRow.Height = new GridLength(1, GridUnitType.Star);
beGrid.RowDefinitions.Add(gridRow);
StackPanel stack = new StackPanel();
stack.Orientation = Orientation.Horizontal;
int i = items.Count + 1;
TextBlock textBlock = new TextBlock();
textBlock.Text = "Question";
textBlock.Name = "Test" + i.ToString();
stack.Children.Add(textBlock);
beGrid.Children.Add(stack);
Grid.SetRow(stack, items.Count);
items.Add(stack);
}
您可以通过索引访问任何以前的面板,例如items[0],并从Children属性获取元素:items[0].Children[0] as TextBlock
TA贡献1828条经验 获得超3个赞
像这样手动创建控件确实不是 WPF 方式......
最好的方法是定义一个项目类,其中包含要显示/编辑的每个值的属性。
然后在窗口中创建ObservableCollection
这些项目(因为您将在单击按钮时手动添加项目),并将其设置为控件ItemsSource
的属性ItemsControl
。ADataTemplate
用于定义精确的控件以显示控件中的每个项目,该控件将绑定到该项目的属性。
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报