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 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. |