首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

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

2014-01-14 
wpf datagrid及时更新数据的问题我想实现,在单元格编辑结束的时候datagrid可以及时更新数据,我实现了INoti

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的方法,其他的你可以搜搜看

热点排行