我正在WPF中工作 - 在我的應用程序中有button
和click event handler
。當我點擊按鈕時,它的事件處理程序會在網格中生成一個名爲grids
的新行。在這個新的行中,我想以編程方式添加另一個網格,以便在此網格中的行中添加Label,Button和TextBox。 正如我執行我的代碼,它只生成一個texboxes!標籤和按鈕顯示一次!這裏的代碼和圖片是:如果我的查詢不清楚,請隨時詢問!如何以編程方式在Grid中的行內創建Grid in Wpf
int r =0;
private void button2_Click(object sender, RoutedEventArgs e)
{
TextEdit text1; Button button1; Grid grid1;
grids.RowDefinitions.Add(new RowDefinition());
text1 = new TextEdit();
text1.SetValue(Grid.ColumnProperty, 1);
text1.SetValue(Grid.RowProperty, r);
button1 = new Button();
button1.Content = "Left + " + r;
button1.Click += new RoutedEventHandler(button1_Click);
button1.SetValue(Grid.ColumnProperty, 1);
button1.SetValue(Grid.RowProperty, r);
grid1 = new Grid();
grid1.SetValue(Grid.ColumnProperty, 1);
grids.RowDefinitions.Add(new RowDefinition());
grid1.SetValue(Grid.RowProperty, r);
grids.Children.Add(button1);
grids.Children.Add(text1);
r = r + 1;
}
編輯
int r =0;
private void button2_Click(object sender, RoutedEventArgs e)
{
db obj = new db();
var query = from p in obj.TableA select p ;
foreach(var a in query.ToList())
{
TextEdit text1; Button button1; Grid grid1;
grids.RowDefinitions.Add(new RowDefinition());
text1 = new TextEdit();
text1.SetValue(Grid.ColumnProperty, 1);
text1.SetValue(Grid.RowProperty, r);
button1 = new Button();
button1.Content = a.name;
button1.Click += new RoutedEventHandler(button1_Click);
button1.SetValue(Grid.ColumnProperty, 1);
button1.SetValue(Grid.RowProperty, r);
grid1 = new Grid();
grid1.SetValue(Grid.ColumnProperty, 1);
grids.RowDefinitions.Add(new RowDefinition());
grid1.SetValue(Grid.RowProperty, r);
grids.Children.Add(button1);
grids.Children.Add(text1);
r = r + 1;}
}
你應該使用'StackPanel'而不是'Grid'作爲外部佈局 – Anirudha
@Anirudh好的,謝謝,我應該在grid1中添加這個堆棧面板嗎? –
名爲'grids'的網格應該是一個'stackpanel',然後包含所有的網格.. – Anirudha