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 IEditableCollectionView. Tato aplikace zobrazí seznam položek k prodeji a dává uživateli možnost přidávat, upravovat nebo odebírat položku. Když uživatel přidá nebo upraví položku, zobrazí formulář výzvu k zadání nové položky. Pokud uživatel odešle formulář, položka se potvrdí do kolekce. Pokud uživatel formulář zruší, položka se zahodí. Pro celou ukázku viz Změna kolekce pomocí 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

Poznámky

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

Typy ItemCollection, BindingListCollectionViewa ListCollectionView jsou typy, které jsou dodávány 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ů. ItemCollection, zejména, často se používá, protože ItemsControl.Items vlastnost je ItemCollection.

Vlastnosti

Name Description
CanAddNew

Získá hodnotu, která urč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 editované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í přidání transakce.

CurrentEditItem

Získá položku v kolekci, která se upravuje.

IsAddingNew

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

IsEditingItem

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

NewItemPlaceholderPosition

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

Metody

Name Description
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ží čekající novou položku.

EditItem(Object)

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

Remove(Object)

Odebere zadanou položku z kolekce.

RemoveAt(Int32)

Odebere položku na zadané pozici z kolekce.

Platí pro