如何检测从列表中删除或添加

时间:2013-02-04 11:07:42

标签: c# wpf linq entity-framework

现在,我有一个有学生ID和学生姓名的数据库。

studentsCollection.Where(c => c.ID.Contains(":"));

然后,我只想带那些学生在他们的身份证上有“冒号”。而且,当我只使用where子句时,我会得到错误,例如“此视图不允许使用edititem”。 但是,当我把句子变成(下面)

studentsCollection.Where(c => c.ID.Contains(":")).ToList();

添加ToList功能;它将能够编辑,但无法更新甚至删除。

有谁知道如何修改此错误?

如果没有足够的信息知道我在问什么,请告诉我,谢谢。

- - - - 修改 -----

以下是我选择的改变功能。

错误情况:当我只使用where子句时,我会得到“此视图不允许使用edititem” 无法更新情况:当我添加ToList功能时,我会工作;但是,我不会更新我的数据。

private void StudentsDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var selectedStudents = e.AddedItems[0] as Students;

            var studentsCollection = selectedStudents.Data;

            studentsCollection.AssociationChanged += ColumnsCollection_Changed;
            var studentsViewSource = ((CollectionViewSource)(this.FindResource("StudentsDataViewSource")));

            studentsViewSource.Source = studentsCollection.Where(c => c.ID.Contains(":")).ToList();
        }

        private void ColumnsCollection_Changed(object sender, System.ComponentModel.CollectionChangeEventArgs e)
        {
            if (e.Action == CollectionChangeAction.Remove)
            {
                studySystemEntities.Data.DeleteObject(e.Element as Data);
            }
            else if (e.Action == CollectionChangeAction.Add)
            {
                studySystemEntities.Data.AddObject(e.Element as Data);
            }
        }

0 个答案:

没有答案