Добавить новую строку в DataGrid во время выполнения (WPF) - PullRequest
1 голос
/ 12 июня 2011

У меня есть 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 ]

1 голос
/ 12 июня 2011

Вы не можете изменять элементы в коллекции Items, если вы указали ее как ItemsSource. Вы должны либо добавить элемент в list (с внедренным INotifyCollectionChanged, либо изначально заполнить свойство Items с помощью метода Add.

Описание ошибки довольно ясно, не так ли?

0 голосов
/ 12 июня 2011

попробуйте сделать что-то вроде этого: var row = dataGrid.NewRow ();

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

InitializeComponent();
...