添加一个新行的DataGrid(WPF)

添加一个新行的DataGrid(WPF)

问题描述:

我有一个DataGrid并填写时加载的窗口,像这样:添加一个新行的DataGrid(WPF)

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

,当我试图通过这个在运行时添加一个新行代码:

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

我得到这个错误:

Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.

我怎么能在运行时添加一个新行?

如果您以ItemsSource的形式提供Items集合中的项目,则无法修改其中的项目。您应该添加项目到您的list(与INotifyCollectionChanged实现的,或者你应该首先填充Items财产通过Add方法

错误说明是很清楚,是不是

+0

注意,在大多数情况下,最好的方式得到'INotifyCollectionChanged'是使用'的ObservableCollection ;. – svick 2011-06-12 09:20:09

尝试做这样的事情:? VAR行= dataGrid.NewRow();

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

InitializeComponent(); 
+0

你真的提出调用'InitializeCo之前'dataGrid'互动mponent'? – Snowbear 2011-06-12 19:34:36