我可以以编程方式向WPF数据网格添加行吗?

时间:2010-10-07 11:00:05

标签: wpf datagrid

我只想添加一个新行,我的数据源位于我需要进行处理的对象中。对于wpf datagrid我需要类似下面的东西......

DataRow row = dataTable.NewRow();
foreach (NavItem item in record.Items)
{
    row[item.FieldNo.ToString()] = item.RecordValue;
}
dataTable.Rows.Add(row);

2 个答案:

答案 0 :(得分:3)

您应该使用ObservableCollection<NavItem>作为数据网格源。然后只需将新元素添加到集合中,就会将其添加到数据网格中。

请参阅此MSDN article

答案 1 :(得分:0)

我不知道这是不是正确的解决方案,但是在绝望中我想到了这样的事情:

foreach (NavField field in this.Fields)
 {
      DataGridTextColumn column = new DataGridTextColumn();
      column.Header = field.FieldNo.ToString();

      //Some other logic
      // Hide non active and hidden fields
      if (!field.Active || !field.Show)
           column.Visibility = System.Windows.Visibility.Collapsed;

       grid.Columns.Add(column);
  }

然后我将datatable添加为itemssource:

  this.dataGridLines.ItemsSource = dataTable.DefaultView;

如果我直接设置数据表,它不关心数据表中的列并自动生成自己的列,不知道为什么..