IEditableCollectionView Interfaz

Definición

Define métodos y propiedades que CollectionView implementa para ofrecer capacidades de edición a una colección.

public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
Derivado

Ejemplos

En el ejemplo siguiente se muestra cómo agregar un elemento a una colección mediante métodos definidos por IEditableCollectionView. Esta aplicación muestra una lista de elementos en venta y proporciona al usuario la opción de agregar, editar o quitar un elemento. Cuando el usuario agrega o edita un elemento, un formulario pide al usuario que escriba un nuevo elemento. Si el usuario envía el formulario, el elemento se confirma en la colección. Si el usuario cancela el formulario, se descarta el elemento. Para obtener todo el ejemplo, vea Cambio de una colección mediante el ejemplo IEditableCollectionView.

IEditableCollectionView editableCollectionView = 
    itemsControl.Items as IEditableCollectionView; 

if (!editableCollectionView.CanAddNew)
{
    MessageBox.Show("You cannot add items to the list.");
    return;
}

// Create a window that prompts the user to enter a new
// item to sell.
ChangeItemWindow win = new ChangeItemWindow();

//Create a new item to be added to the collection.
win.DataContext = editableCollectionView.AddNew();

// If the user submits the new item, commit the new
// object to the collection.  If the user cancels 
// adding the new item, discard the new item.
if ((bool)win.ShowDialog())
{
    editableCollectionView.CommitNew();
}
else
{
    editableCollectionView.CancelNew();
}
Dim editableCollectionView As IEditableCollectionView = TryCast(itemsControl.Items, IEditableCollectionView)

If Not editableCollectionView.CanAddNew Then
    MessageBox.Show("You cannot add items to the list.")
    Return
End If

' Create a window that prompts the user to enter a new
' item to sell.
Dim win As New ChangeItemWindow()

'Create a new item to be added to the collection.
win.DataContext = editableCollectionView.AddNew()

' If the user submits the new item, commit the new
' object to the collection.  If the user cancels 
' adding the new item, discard the new item.
If CBool(win.ShowDialog()) Then
    editableCollectionView.CommitNew()
Else
    editableCollectionView.CancelNew()
End If

Comentarios

Cuando una vista de colección implementa la IEditableCollectionView interfaz , puede cambiar directamente la colección subyacente, si permite realizar cambios, mediante los métodos y propiedades que IEditableCollectionView expone, independientemente del tipo de la colección.

Los tipos ItemCollection, BindingListCollectionViewy ListCollectionView son los tipos que se incluyen con Windows Presentation Foundation (WPF) que heredan de CollectionView. Estos tipos también implementan IEditableCollectionView, por lo que puede editar una colección que use uno de esos tipos. ItemCollection, en concreto, se usa a menudo porque la ItemsControl.Items propiedad es .ItemCollection

Propiedades

CanAddNew

Obtiene un valor que indica si puede agregarse un elemento nuevo a la colección.

CanCancelEdit

Obtiene un valor que indica si la vista de colección puede descartar los cambios pendientes y restaurar los valores originales de un objeto editado.

CanRemove

Obtiene un valor que indica si un elemento puede quitarse de la colección.

CurrentAddItem

Obtiene el elemento que se está agregando durante la transacción de adición actual.

CurrentEditItem

Obtiene el elemento de la colección que se está editando.

IsAddingNew

Obtiene un valor que indica si hay una transacción de adición en curso.

IsEditingItem

Obtiene un valor que indica si hay una transacción de edición en curso.

NewItemPlaceholderPosition

Obtiene o establece la posición del nuevo marcador de posición de elemento en la vista de colección.

Métodos

AddNew()

Agrega un nuevo elemento a la colección.

CancelEdit()

Finaliza la transacción de edición y, si es posible, restaura el valor original del elemento.

CancelNew()

Finaliza la transacción de adición y descarta el nuevo elemento pendiente.

CommitEdit()

Finaliza la transacción de edición y guarda los cambios pendientes.

CommitNew()

Finaliza la transacción de adición y guarda el nuevo elemento pendiente.

EditItem(Object)

Inicia una transacción de edición del elemento especificado.

Remove(Object)

Quita el elemento especificado de la colección.

RemoveAt(Int32)

Quita de la colección un elemento situado en la posición especificada.

Se aplica a