我只是想添加一个新的行,我有我的数据源在我需要做一些处理的对象。我需要像下面的WPF数据网格...我可以以编程方式将行添加到WPF数据网格吗?
DataRow row = dataTable.NewRow();
foreach (NavItem item in record.Items)
{
row[item.FieldNo.ToString()] = item.RecordValue;
}
dataTable.Rows.Add(row);
我只是想添加一个新的行,我有我的数据源在我需要做一些处理的对象。我需要像下面的WPF数据网格...我可以以编程方式将行添加到WPF数据网格吗?
DataRow row = dataTable.NewRow();
foreach (NavItem item in record.Items)
{
row[item.FieldNo.ToString()] = item.RecordValue;
}
dataTable.Rows.Add(row);
我不知道这是否是正确的解决方案,但我走到这样的事情,在绝望:
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);
}
然后我添加数据表作为的ItemsSource:
this.dataGridLines.ItemsSource = dataTable.DefaultView;
如果我的数据表中直接设置,它并不关心从数据表中的列和自动生成它自己的列,不知道为什么..
你应该使用ObservableCollection<NavItem>
作为DataGrid的来源。然后,只需向集合中添加一个新元素即可将其添加到数据网格中。
看到这个MSDN article。
你为什么不你的数据源绑定到WPF DataGrid的ItemsSource时,然后当你的数据源进行更新(如新行被添加)它将在WPF datagird被添加。 – whoisthis 2010-10-07 11:05:09
我试图将数据表绑定到itemssource,它可以工作,但标题,可见性和其他与wpf数据网格的映射不正确。我尝试了一个字典列表,其中我想要的关键是列和值的行值,这是行不通的。我用完了网络上的所有资源,都是静态列。 – 2010-10-07 15:29:33
我的数据源位于显示前需要处理的对象,我无法直接绑定它。 – 2010-10-07 16:02:39