我对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();
}
但是如何从不同的窗口添加一行?
感谢,
答案 0 :(得分:1)
正如前面HighCore所指出的那样,你应该通过使用对象的列表(集合)来实现,你想要在你的DataGrid中显示。这是 Binding 的用武之地。
有几个教程和指南,但您可能有一些问题或需要一些提示可以继续。
此时,很高兴知道有些事情是完全不同的,而其他事情则不会传递给WPF。您可以阅读this撰写的Reed Copsey文章。这是一个非常好的阅读,并帮助我离开WinForms作为框架。
如果您已经准备好实施第一个 MVVM 示例,那么您应该真正了解绑定>等概念strong>,活动,命令以及它的工作原理。
在这种特殊情况下,您不需要使用该功能来通知View有关自上述说明以来所做的任何更改,数据不会发生变化。但是,界面INotifyPropertyChanged
在这里根本不是必需的,但您应该考虑使用它。
答案 1 :(得分:-1)