0

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」である理由を確認しようとしました。

ありがとうございました。

4

1 に答える 1