我试图在每次单击按钮时插入DataGrid的所有行值, 所以如果用户在datagrid三行上插入三次显示,我有一个类有代码
public string Name { get; set; }
public string Job { get; set; }
public string Phone { get; set; }
public MyGrid(string Vendors,string Jobs,string Tel)
{
Name = Vendors;
Job = Jobs;
Phone = Tel;
}
我在这里调用了按钮点击事件
static List<MyGrid> gride;
gride = new List<MyGrid>();
for (int i = 0; i < 3; i++)
{
var myg1 = new MyGrid(textBox10.Text, textBox11.Text, textBox12.Text);
gride.Add(myg1);
}
dataGridView1.ItemsSource = gride;
此代码可以正常工作,但有一个问题,当添加数据应该出现在一行中,但在一次点击时出现在3行内, 我希望每次点击显示一行不同的数据。 我如何在wpf
中的按钮上添加新行答案 0 :(得分:1)
首先,这不是一种做WPF方式的方法。使用适当的绑定来实现您的目标。
以WPF方式执行的步骤:
ObservableCollection<MyGrid>
并将ItemsSource与该集合绑定。INotifyCollectionChanged
,DataGrid将自动刷新。现在,对于您的代码,存在一些问题。
Remove the for loop
即可。initialize list only once from class constructor
。No need to set ItemsSource again
。public class CodeBehindClass
{
private ObservableCollection<MyGrid> gride;
public CodeBehindClass()
{
gride = new ObservableCollection<MyGrid>();
dataGridView1.ItemsSource = gride;
}
private void ButtonHandler(object sender, RoutedEventArgs e)
{
var myg1 = new MyGrid(textBox10.Text, textBox11.Text, textBox12.Text);
gride.Add(myg1);
}
}