我有一个带网格的分组框。现在网格有2列8行。
网格行0列0有一个组合框。 网格行0列1有一个文本框。
其余网格行为空。当程序运行时,用户单击一个按钮,其余的行将逐个动态填充,每个按钮分别单击组合框和文本框。
网格行1列0有一个组合框。 网格行1列1有一个文本框。
网格行2列0有一个组合框。 网格行2列1有一个文本框。
网格行#列0有一个组合框。 网格行#列1有一个文本框。
直到它到达最后一行。
这是我的按钮点击功能:
int c = 1;
private void AddNewNum_Click(object sender, RoutedEventArgs e)
{
System.Windows.Controls.TextBox txt = new System.Windows.Controls.TextBox();
txt.Name = "txtList1PhoneNum"+c;
txt.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
txt.VerticalAlignment = System.Windows.VerticalAlignment.Top;
txt.Margin = new Thickness(8, 7, 0, 0);
txt.Height = 26;
txt.Width = 120;
Grid.SetColumn(txt, 1);
Grid.SetRow(txt, c);
List1.Children.Add(txt);
System.Windows.Controls.ComboBox cmb = new System.Windows.Controls.ComboBox();
cmb.Name = "cmbList1PhoneNum" + c;
cmb.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
cmb.VerticalAlignment = System.Windows.VerticalAlignment.Top;
cmb.Margin = new Thickness(7, 7, 0, 0);
cmb.Height = 26;
cmb.Width = 118;
Grid.SetColumn(cmb, 0);
Grid.SetRow(cmb, c);
List1.Children.Add(cmb);
System.Windows.Controls.TextBox txt2 = new System.Windows.Controls.TextBox();
txt2.Name = "txtList2PhoneNum" + c;
txt2.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
txt2.VerticalAlignment = System.Windows.VerticalAlignment.Top;
txt2.Margin = new Thickness(8, 7, 0, 0);
txt2.Height = 26;
txt2.Width = 120;
Grid.SetColumn(txt2, 1);
Grid.SetRow(txt2, c);
List2.Children.Add(txt2);
System.Windows.Controls.ComboBox cmb2 = new System.Windows.Controls.ComboBox();
cmb2.Name = "cmbList2PhoneNum" + c;
cmb2.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
cmb2.VerticalAlignment = System.Windows.VerticalAlignment.Top;
cmb2.Margin = new Thickness(7, 7, 0, 0);
cmb2.Height = 26;
cmb2.Width = 118;
Grid.SetColumn(cmb2, 0);
Grid.SetRow(cmb2, c);
List2.Children.Add(cmb2);
c++;
}
_
我想要实现的是我不希望行有限制,我希望网格随每个按钮单击动态增长,方法是向网格添加新行并动态调整窗口大小,或者在网格超出组合框的高度限制时向网格添加新行并使用滚动条。
答案 0 :(得分:0)
将ListView与包含Combobox和TextBox的模板一起使用。将ListView绑定到视图模型中的列表。当您单击视图模型中的列表中添加新项目时,将出现一个新行
答案 1 :(得分:0)
我建议使用GridView,ListView控件。另请参阅DataTamplets的工作原理。简单的例子只是为了开始它应该是什么样子。
<GridView ItemsSource="{Binding MyItemSource}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ComboBox ItemsSource="{Binding ItemComboSource}"/>
<TextBlock Text="{Binding ItemText}"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>