读书人

wpf datagrid及时更新数据的有关问题

发布时间: 2014-01-14 23:14:00 作者: rapoo

wpf datagrid及时更新数据的问题
我想实现,在单元格编辑结束的时候datagrid可以及时更新数据,我实现了INotifyPropertyChanged 接口
数据也是结合ObservableCollection进行绑定的。
我在datagrid的 cellEditEnding事件里面对数据进行存储,每次发现会少存一条数据,就是最后编辑的那一条。
我不知道该怎么办。。如何能及时更新数据呢。。
本来的想法是用一个按钮点保存,可是这个想法被否定了。
现在又要实现判断该单元格是否进行修改。好像也不知道从哪个事件入手。。求老师们解答
[解决办法]

引用:
Quote: 引用:


public class Test
{
public string Name { set; get; }
public Test CloneSource { set; get; }
public Test Clone()
{
return new Test() { Name = this.Name };
}
}

获取数据以后,首先复制

public ObservableCollection<Test> CopyList = new ObservableCollection<Test>();
public ObservableCollection<Test> OriginalSource;
public void Copy(ObservableCollection<Test> list)
{
OriginalSource = list;
CopyList.Clear();
foreach(Test item in OriginalSource)
{
CopyList.Add(item.Clone());
CopyList.Last().CloneSource = item;
}
//前台绑定ItemsSource为OriginalSource
}

在用户操作完成以后,退出时,根据情况进行保存,这里只帮你判断下,修改状态

//在用户操作完成退出时判断是否修改等
public bool IsChanged()
{
//无删除,只需要判断是否有修改即可
if (CopyList.Count == OriginalSource.Count)
{
bool isChanged = false;
for (int i = 0; i < OriginalSource.Count; i++)
{
if (OriginalSource[i].Name != CopyList[i].Name)
{
isChanged = true;
break;
}
}
return isChanged;
}
return true;
}


对了 你这个拷贝的方法 我字段里面那么多拷贝之后是否会慢许多。。类中还有类 该如何

慢到不至于慢很多,只是多了几个字段的处理而且,类中类也根据情况,如果你的前台操作不涉及到类中类的处理和修改,那可以直接使用,不用copy,而且我这里提供的只是一种copy的方法,其他的你可以搜搜看

读书人网 >CAD教程

热点推荐