我有一个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。
如何在运行时添加新行?
答案 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();