0

これで、学生 ID と学生名のデータベースができました。

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

次に、ID に「コロン」が含まれている学生を取り上げたいと思います。そして、where句だけを使用すると、「このビューでは編集項目は許可されていません」などのエラーが発生します。しかし、文を(下)にすると

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

ToList 関数を追加します。編集はできますが、更新も削除もできません。

このエラーを修正する方法を知っている人はいますか?

私が求めていることを知るのに十分な情報がない場合は、教えてください、ありがとう.

-----編集-----

以下は私のselectedchanged関数です。

エラーの状況: where 句のみを使用すると、「edititem is not allowed for this view」が表示されます。 更新できない状況: 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);
            }
        }
4

0 に答える 0