在运行时向WPG添加新行到DataGrid

时间:2011-06-12 08:06:48

标签: wpf data-binding datagrid wpfdatagrid

我有一个DataGrid并在加载窗口时填充它,如下所示:

private void Window_Loaded(object sender, RoutedEventArgs e) {
    var list = DbService.GetStuffsFull();
    dataGrid.ItemsSource = list;
}

当我尝试通过此代码在运行时添加新行时:

Stuff item = new Stuff();
dataGrid.Items.Add(item);

我收到此错误:

  

操作无效   ItemsSource正在使用中。访问和   修改元素   而不是ItemsControl.ItemsSource。

如何在运行时添加新行?

2 个答案:

答案 0 :(得分:1)

如果您将Items提供的项目设为ItemsSource,则无法对其进行修改。您应该向list添加项目(已INotifyCollectionChanged已实施,或者您最初应通过Items方法填充Add属性。

错误描述非常清楚,不是吗?

答案 1 :(得分:0)

尝试做这样的事情:     var row = dataGrid.NewRow();

    dataGrid.Rows.Add(row);
    row["column1"] = "data1";  
    row["column2"] = "data2";
    row["column3"] = "data3";

InitializeComponent();