Я работаю с сеткой данных в WPF, которая привязана к источнику представления коллекции. Источник представления привязан к наблюдаемой коллекции с именем Rows.
В сетке данных есть функции добавления и удаления, которые работают правильно, за исключением небольших проблем.
Вот изображения:
В сетке данных больше данных, чем это. Каждый тест начинается с двух последовательностей (две строки, которые вы видите, относятся к одному тесту), и они сгруппированы и отсортированы по уникальному идентификатору.
Я нажал красный «X», чтобы удалить строку. Теперь я нажму кнопку «Добавить», расположенную в левом верхнем углу изображения.
Данные все еще там.
Это мои функции добавления и удаления:
private void Add(object sender, ExecutedRoutedEventArgs e)
{
var testRun = e.Parameter as TestRun;
if (testRun != null)
{
var numberOfRows = testRun.Property.GetValue("numberOfRows").ToNullable<int>().GetValueOrDefault(2);
numberOfRows++;
testRun.Property.SetValue("numberOfRows", numberOfRows.ToString());
this.Rows.Add(new ESCHandle(testRun, numberOfRows));
}
}
private void Delete(object sender, ExecutedRoutedEventArgs e)
{
var esc = e.Parameter as ESCHandle;
if (esc != null)
{
this.Rows.Remove(esc);
var numberOfRows = esc.TestRun.Property.GetValue("numberOfRows").ToNullable<int>().GetValueOrDefault(2);
numberOfRows--;
esc.TestRun.Property.SetValue("numberOfRows", numberOfRows.ToString());
}
}
Объект ESC правильно удаляется из наблюдаемой коллекции при удалении. Но когда я добавляю еще один объект/строку ESC в коллекцию и сетку данных, данные каким-то образом копируются в новый объект.