これで、学生 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);
}
}