ObservableCollection (Of T) を持つ ListView データ ソースがあります。「T」は EF のエンティティです。アイテムを追加/編集するには、IEditableCollectionView を使用します。それは完全に機能します。問題は、既存のアイテムを変更するアクションのキャンセルです。
Private Sub edit_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles ListBoxMain.MouseDoubleClick
If ListBoxMain.SelectedItem Is Nothing Then
MessageBox.Show("No item is selected")
Return
End If
Dim editableCollectionView As IEditableCollectionView = TryCast(ListBoxMain.Items, IEditableCollectionView)
Dim win As New ChangeItemWindow()
editableCollectionView.EditItem(ListBoxMain.SelectedItem)
win.DataContext = ListBoxMain.SelectedItem
If CBool(win.ShowDialog()) Then
editableCollectionView.CommitEdit()
Else
editableCollectionView.CancelEdit()
End If
End Sub
メソッド「editableCollectionView.CancelEdit()」では、次の例外がスローされます:「CancelEdit は、現在の編集要素ではサポートされていません。」プロパティ「CanCancelEdit」が「False」である理由を確認しようとしました。
ありがとうございました。