Condividi tramite


IEditableCollectionView Interfaccia

Definizione

Definisce metodi e proprietà implementati da un oggetto CollectionView per fornire funzionalità di modifica a una raccolta.

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

Esempio

Nell'esempio seguente viene illustrato come aggiungere un elemento a una raccolta usando metodi definiti da IEditableCollectionView. Questa applicazione visualizza un elenco di articoli in vendita e offre all'utente la possibilità di aggiungere, modificare o rimuovere un articolo. Quando l'utente aggiunge o modifica un elemento, un modulo richiede all'utente di immettere un nuovo elemento. Se l'utente invia il modulo, viene eseguito il commit dell'elemento nella raccolta. Se l'utente annulla il modulo, l'elemento viene rimosso. Per l'intero esempio, vedere Modifica di una raccolta usando l'esempio 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

Commenti

Quando una visualizzazione raccolta implementa l'interfaccia IEditableCollectionView , è possibile modificare direttamente la raccolta sottostante, se consente di apportare modifiche, usando i metodi e le proprietà esposti IEditableCollectionView , indipendentemente dal tipo della raccolta.

I tipi ItemCollection, BindingListCollectionViewe ListCollectionView sono i tipi forniti con Windows Presentation Foundation (WPF) che ereditano da CollectionView. Questi tipi implementano IEditableCollectionViewanche , in modo da poter modificare una raccolta che usa uno di questi tipi. ItemCollection, in particolare, viene spesso usato perché la ItemsControl.Items proprietà è un ItemCollectionoggetto .

Proprietà

Nome Descrizione
CanAddNew

Ottiene un valore che indica se è possibile aggiungere un nuovo elemento all'insieme.

CanCancelEdit

Ottiene un valore che indica se la visualizzazione raccolta può eliminare le modifiche in sospeso e ripristinare i valori originali di un oggetto modificato.

CanRemove

Ottiene un valore che indica se un elemento può essere rimosso dalla raccolta.

CurrentAddItem

Ottiene l'elemento da aggiungere durante la transazione di aggiunta corrente.

CurrentEditItem

Ottiene l'elemento nella raccolta da modificare.

IsAddingNew

Ottiene un valore che indica se è in corso una transazione di aggiunta.

IsEditingItem

Ottiene un valore che indica se è in corso una transazione di modifica.

NewItemPlaceholderPosition

Ottiene o imposta la posizione del segnaposto del nuovo elemento nella visualizzazione raccolta.

Metodi

Nome Descrizione
AddNew()

Aggiunge un nuovo elemento alla raccolta.

CancelEdit()

Termina la transazione di modifica e, se possibile, ripristina il valore originale nell'elemento.

CancelNew()

Termina la transazione di aggiunta e rimuove il nuovo elemento in sospeso.

CommitEdit()

Termina la transazione di modifica e salva le modifiche in sospeso.

CommitNew()

Termina la transazione di aggiunta e salva il nuovo elemento in sospeso.

EditItem(Object)

Avvia una transazione di modifica dell'elemento specificato.

Remove(Object)

Rimuove l'elemento specificato dalla raccolta.

RemoveAt(Int32)

Rimuove l'elemento in corrispondenza della posizione specificata dall'insieme.

Si applica a