Compartir por


IEditableCollectionView Interfaz

Definición

Define métodos y propiedades que implementa CollectionView para proporcionar funcionalidades 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 para la 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 IEditableCollectionView Sample.

IEditableCollectionView editableCollectionView =
    itemsControl.Items;

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()
{
    //Create a new item to be added to the collection.
    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 , IEditableCollectionViewpor 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

Nombre Description
CanAddNew

Obtiene un valor que indica si se puede agregar un nuevo elemento 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 se puede quitar un elemento de la colección.

CurrentAddItem

Obtiene el elemento que se va a agregar durante la transacción add actual.

CurrentEditItem

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

IsAddingNew

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

IsEditingItem

Obtiene un valor que indica si una transacción de edición está 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

Nombre Description
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 al 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)

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

Remove(Object)

Quita el elemento especificado de la colección.

RemoveAt(Int32)

Quita el elemento en la posición especificada de la colección.

Se aplica a