Redigera

Dela via


IEditableCollectionView.EditItem(Object) Method

Definition

Begins an edit transaction of the specified item.

public:
 void EditItem(System::Object ^ item);
public void EditItem (object item);
abstract member EditItem : obj -> unit
Public Sub EditItem (item As Object)

Parameters

item
Object

The item to edit.

Examples

The following example creates a form that prompts the user to edit an existing item. If the user submits the form, the changes are committed to the collection. If the user cancels the form, the changes are discarded. For the entire sample, see Changing a Collection by Using IEditableCollectionView Sample .

IEditableCollectionView editableCollectionView =
            itemsControl.Items as IEditableCollectionView;

// Create a window that prompts the user to edit an item.
ChangeItemWindow win = new ChangeItemWindow();
editableCollectionView.EditItem(itemsControl.SelectedItem);
win.DataContext = itemsControl.SelectedItem;

// If the user submits the new item, commit the changes.
// If the user cancels the edits, discard the changes. 
if ((bool)win.ShowDialog())
{
    editableCollectionView.CommitEdit();
}
else
{
    // If the objects in the collection can discard pending 
    // changes, calling IEditableCollectionView.CancelEdit
    // will revert the changes. Otherwise, you must provide
    // your own logic to revert the changes in the object.
    
    if (!editableCollectionView.CanCancelEdit)
    {
        // Provide logic to revert changes.
    }

    editableCollectionView.CancelEdit();
}
Dim editableCollectionView As IEditableCollectionView = TryCast(itemsControl.Items, IEditableCollectionView)

' Create a window that prompts the user to edit an item.
Dim win As New ChangeItemWindow()
editableCollectionView.EditItem(itemsControl.SelectedItem)
win.DataContext = itemsControl.SelectedItem

' If the user submits the new item, commit the changes.
' If the user cancels the edits, discard the changes. 
If CBool(win.ShowDialog()) Then
    editableCollectionView.CommitEdit()
Else
    ' If the objects in the collection can discard pending 
    ' changes, calling IEditableCollectionView.CancelEdit
    ' will revert the changes. Otherwise, you must provide
    ' your own logic to revert the changes in the object.

    If Not editableCollectionView.CanCancelEdit Then
        ' Provide logic to revert changes.
    End If

    editableCollectionView.CancelEdit()
End If

Applies to