Sdílet prostřednictvím


IEditableCollectionView Rozhraní

Definice

Definuje metody a vlastnosti, které CollectionView implementuje za účelem poskytování možností úprav kolekci.

public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
Odvozené

Příklady

Následující příklad ukazuje, jak přidat položku do kolekce pomocí metod, které jsou definovány pomocí IEditableCollectionView. Tato aplikace zobrazí seznam položek k prodeji a dává uživateli možnost přidat, upravit nebo odebrat položku. Když uživatel přidá nebo upraví položku, formulář ho vyzve k zadání nové položky. Pokud uživatel formulář odešle, položka se potvrdí do kolekce. Pokud uživatel formulář zruší, položka se zahodí. Celou ukázku najdete v tématu Změna kolekce pomocí ukázky 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

Poznámky

Když zobrazení kolekce implementuje IEditableCollectionView rozhraní, můžete přímo změnit podkladovou kolekci, pokud umožňuje provádět změny, pomocí metod a vlastností, které IEditableCollectionView zpřístupňují, bez ohledu na typ kolekce.

Typy ItemCollection, BindingListCollectionViewa ListCollectionView jsou typy, které se dodávají s Windows Presentation Foundation (WPF), které dědí z CollectionView. Tyto typy také implementují IEditableCollectionView, takže můžete upravit kolekci, která používá jeden z těchto typů. ItemCollectionse často používá, protože ItemsControl.Items vlastnost je ItemCollection.

Vlastnosti

CanAddNew

Získá hodnotu, která označuje, zda lze do kolekce přidat novou položku.

CanCancelEdit

Získá hodnotu, která označuje, zda zobrazení kolekce může zahodit čekající změny a obnovit původní hodnoty upravovaného objektu.

CanRemove

Získá hodnotu, která označuje, zda lze položku odebrat z kolekce.

CurrentAddItem

Získá položku, která je přidána během aktuální transakce přidání.

CurrentEditItem

Získá položku v kolekci, která je upravována.

IsAddingNew

Získá hodnotu, která označuje, zda probíhá transakce přidání.

IsEditingItem

Získá hodnotu, která označuje, zda probíhá transakce úprav.

NewItemPlaceholderPosition

Získá nebo nastaví pozici zástupného symbolu nové položky v zobrazení kolekce.

Metody

AddNew()

Přidá do kolekce novou položku.

CancelEdit()

Ukončí transakci úprav a pokud je to možné, obnoví původní hodnotu položky.

CancelNew()

Ukončí transakci přidání a zahodí čekající novou položku.

CommitEdit()

Ukončí transakci úprav a uloží čekající změny.

CommitNew()

Ukončí transakci přidání a uloží novou položku čekající na vyřízení.

EditItem(Object)

Zahájí transakci úprav zadané položky.

Remove(Object)

Odebere zadanou položku z kolekce.

RemoveAt(Int32)

Odebere položku na zadaném místě z kolekce.

Platí pro