且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

我如何在WPF中将新行添加到DataGrid中?

更新时间:2023-12-02 23:14:16

首先,这不是WPF方法.使用适当的绑定来实现您想要的.

First of all this is not a way to do WPF way. Use proper bindings to achieve you want.

以WPF方式执行的步骤:

Steps to do in WPF way:

  1. 创建 ObservableCollection< MyGrid> 并将ItemsSource与该集合绑定.
  2. 代替再次设置ItemsSource,只需在该集合中添加对象.自ObservableCollection实现 INotifyCollectionChanged 以来,DataGrid将自动刷新.


现在,对于您的代码,有几个问题.


Now, for your code there are couple of issues.

  1. 如果要一次添加项目,为什么要运行循环并添加对象三次. 删除for循环 .
  2. 单击每个按钮,即可重新初始化列表.而是将列表保留为实例字段,并仅通过类构造函数 初始化列表一次.
  3. 无需再次设置ItemsSource .


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);
   }
}