IEditableCollectionView Interface

Definição

Define métodos e propriedades que um CollectionView implementa para fornecer capacidades de edição a uma coleção.

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

Exemplos

O exemplo seguinte mostra como adicionar um item a uma coleção usando métodos definidos por IEditableCollectionView. Esta aplicação apresenta uma lista de artigos à venda e dá ao utilizador a opção de adicionar, editar ou remover um item. Quando o utilizador adiciona ou edita um item, um formulário pede-lhe que insira um novo item. Se o utilizador submeter o formulário, o item é comprometido para a coleção. Se o utilizador cancelar o formulário, o item é descartado. Para a amostra completa, veja Alterar uma Coleção Usando a Amostra IEditableCollectionView.

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

Observações

Quando uma vista de coleção implementa a IEditableCollectionView interface, pode alterar diretamente a coleção subjacente, se permitir alterações, usando os métodos e propriedades que IEditableCollectionView expõem, independentemente do tipo da coleção.

Os tipos ItemCollection, BindingListCollectionView e ListCollectionView são os tipos que vêm com Windows Presentation Foundation (WPF) que herdam de CollectionView. Estes tipos também implementam o IEditableCollectionView, por isso podes editar uma coleção que use um desses tipos. ItemCollection, em particular, é frequentemente usado porque a ItemsControl.Items propriedade é um ItemCollection.

Propriedades

Name Description
CanAddNew

Recebe um valor que indica se um novo item pode ser adicionado à coleção.

CanCancelEdit

Recebe um valor que indica se a vista de coleção pode descartar alterações pendentes e restaurar os valores originais de um objeto editado.

CanRemove

Recebe um valor que indica se um item pode ser removido da coleção.

CurrentAddItem

Recebe o item que está a ser adicionado durante a transação atual de adição.

CurrentEditItem

Recebe o item da coleção que está a ser editado.

IsAddingNew

Recebe um valor que indica se uma transação de adição está em curso.

IsEditingItem

Recebe um valor que indica se uma transação de edição está em curso.

NewItemPlaceholderPosition

Obtém ou define a posição do novo item marcador na vista da coleção.

Métodos

Name Description
AddNew()

Adiciona um novo item à coleção.

CancelEdit()

Termina a transação de edição e, se possível, restaura o valor original do item.

CancelNew()

Termina a transação de adicionar e descarta o novo item pendente.

CommitEdit()

Termina a transação de edição e guarda as alterações pendentes.

CommitNew()

Termina a transação de adicionar e guarda o novo item pendente.

EditItem(Object)

Inicia uma transação de edição do item especificado.

Remove(Object)

Remove o item especificado da coleção.

RemoveAt(Int32)

Remove o item na posição especificada da coleção.

Aplica-se a