IEditableCollectionView Rozhraní
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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. |