如何在wpf中向datagrid添加行?

时间:2014-04-17 16:05:04

标签: c# wpf datagrid row add

我对wpf很新。我正在寻找一些相当于:

dataGridView1.Rows.Add(sNazwa, 1, opakowanie, cena, sWartoscNetto, sVAT, sWartoscBrutto);

我知道我应该使用

mainwindow.dataGrid1.Items.Add()

但是如何定义我想在此处添加的行?

修改

我想我应该详细说明我打算实现的目标。 我正在重写我在WinForms中创建的程序。它为客户提供优惠。它在winforms中有一个gridview,其中包含我的客户的产品列表。在secon窗口中,我有一个连接到sql数据库的gridform。通过双击一行,行中的一些数据应该转移到mainwindow datagrid(但不是整行)。在主窗口中,datagrid用户应该能够编辑单元格,移动行(向上和向下),排序和删除行。列表<>让我做所有这些事情?我试图使用你的解决方案使用List添加一行,但它很有效(但我很难从第二个窗口发送数据),但我仍然想知道它是否会让我做以后想要的事情。

修改 这有效:

public class Produkt
{
  public string Nazwa { get; set;}
  public string Opakowanie { get; set; }
  public string Ilosc { get; set; }
  public string Cena { get; set; }
  public string WartoscNetto { get; set; }
  public string VAT { get; set; }
  public string WartoscBrutto { get; set; }
}

public List<Produkt> DodajProdukty()
{
  List<Produkt> produkt = new List<Produkt>();
  produkt.Add(new Produkt() { Nazwa = "test", Opakowanie = "test", Ilosc = "1", Cena = "test", WartoscNetto = "test", WartoscBrutto = "test" });
  return produkt;

}


private void Window_Loaded(object sender, RoutedEventArgs e)
{
  dataGrid1.ItemsSource = DodajProdukty();
}

但是如何从不同的窗口添加一行?

感谢,

2 个答案:

答案 0 :(得分:1)

正如前面HighCore所指出的那样,你应该通过使用对象的列表(集合)来实现,你想要在你的DataGrid中显示。这是 Binding 的用武之地。

有几个教程和指南,但您可能有一些问题或需要一些提示可以继续。

此时,很高兴知道有些事情是完全不同的,而其他事情则不会传递给WPF。您可以阅读this撰写的Reed Copsey文章。这是一个非常好的阅读,并帮助我离开WinForms作为框架。

如果您已经准备好实施第一个 MVVM 示例,那么您应该真正了解绑定等概念strong>,活动命令以及它的工作原理。

在这种特殊情况下,您不需要使用该功能来通知View有关自上述说明以来所做的任何更改,数据不会发生变化。但是,界面INotifyPropertyChanged在这里根本不是必需的,但您应该考虑使用它。

答案 1 :(得分:-1)

好的,这完美地运作了:

https://stackoverflow.com/a/15749641/2186128

现在我需要了解所有这些意思:)