【发布时间】:2015-01-15 14:15:09
【问题描述】:
我正在使用 WPF 中绑定到 collectionviewsource 的数据网格。视图源绑定到名为 Rows 的可观察集合。
数据网格具有添加和删除功能,除了小问题外,它们都可以正常工作。
这里是图片:
数据网格有比这更多的数据。每个测试从两个序列开始(您看到的两行属于一个测试),它们按唯一 ID 分组和排序。
我点击了红色的“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 对象在删除时从 observablecollection 中正确删除。但是,当我将另一个 ESC 对象/行添加到集合和数据网格时,数据会以某种方式复制到新对象中。
【问题讨论】:
标签: c# wpf observablecollection collectionviewsource