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 關注
- 135 瀏覽
添加回答
舉報