【发布时间】:2013-08-31 21:26:55
【问题描述】:
我想删除网格的最后一行。我希望最后一行删除其中包含“2”的行。但无论我删除第 0 行还是第 1 行,第 0 行总是被删除。我怀疑我遗漏了一些关于行与网格的微妙之处。我做错了什么:
// Create row 0
RowDefinition row = new RowDefinition();
row.Height = GridLength.Auto;
myGrid.RowDefinitions.Add(row);
// Add someting to it
TextBox tb = new TextBox();
tb.Text = "1";
Grid.SetColumn(tb, 0);
Grid.SetRow(tb, 0);
myGrid.Children.Add(tb);
// create row 1
row = new RowDefinition();
row.Height = GridLength.Auto;
myGrid.RowDefinitions.Add(row);
// Add something to it
tb = new TextBox();
tb.Text = "2";
Grid.SetColumn(tb, 0);
Grid.SetRow(tb, 1);
myGrid.Children.Add(tb);
// Delete row 1 (second row 0-indexed) <<< only row 0 is deleted
myGrid.RowDefinitions.RemoveAt(1);
注意:我也试过了:
myGrid.RowDefinitions.Remove(myGrid.RowDefinitions[1]);
同样的结果。感谢您提供任何见解。
【问题讨论】:
-
不要在 WPF 的过程代码中创建或操作 UI 元素。这就是 XAML 的用途。
-
@HighCore 我想根据某些条件动态添加/删除行,有没有办法只在 XAML 中做到这一点?我认为这正是背后的代码的用途。
-
不,后面的代码不是为了那个。不需要添加或删除网格行或列,也不认为是一种好的做法。