Udostępnij za pośrednictwem


IEditableCollectionView Interfejs

Definicja

Definiuje metody i właściwości, które CollectionView implementuje w celu zapewnienia możliwości edytowania kolekcji.

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

Przykłady

W poniższym przykładzie pokazano, jak dodać element do kolekcji przy użyciu metod zdefiniowanych przez IEditableCollectionViewmetodę . Ta aplikacja wyświetla listę przedmiotów do sprzedaży i daje użytkownikowi możliwość dodawania, edytowania lub usuwania elementu. Gdy użytkownik dodaje lub edytuje element, formularz monituje użytkownika o wprowadzenie nowego elementu. Jeśli użytkownik prześle formularz, element zostanie zatwierdzony do kolekcji. Jeśli użytkownik anuluje formularz, element zostanie odrzucony. W całym przykładzie zobacz Zmienianie kolekcji przy użyciu przykładu 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

Uwagi

Gdy widok kolekcji implementuje IEditableCollectionView interfejs, można bezpośrednio zmienić podstawową kolekcję, jeśli zezwala na wprowadzanie zmian przy użyciu metod i właściwości, które IEditableCollectionView uwidacznia, niezależnie od typu kolekcji.

Typy , i to typy ItemCollectiondostarczane za pomocą programu Windows Presentation Foundation (WPF), które dziedziczą z programu CollectionView.ListCollectionViewBindingListCollectionView Te typy implementują IEditableCollectionViewrównież element , aby można było edytować kolekcję, która używa jednego z tych typów. ItemCollection, w szczególności, jest często używany, ponieważ ItemsControl.Items właściwość jest ItemCollection.

Właściwości

Nazwa Opis
CanAddNew

Pobiera wartość wskazującą, czy do kolekcji można dodać nowy element.

CanCancelEdit

Pobiera wartość wskazującą, czy widok kolekcji może odrzucić oczekujące zmiany i przywrócić oryginalne wartości edytowanego obiektu.

CanRemove

Pobiera wartość wskazującą, czy element można usunąć z kolekcji.

CurrentAddItem

Pobiera element, który jest dodawany podczas bieżącej transakcji dodawania.

CurrentEditItem

Pobiera element w kolekcji, który jest edytowany.

IsAddingNew

Pobiera wartość wskazującą, czy transakcja dodawania jest w toku.

IsEditingItem

Pobiera wartość wskazującą, czy transakcja edycji jest w toku.

NewItemPlaceholderPosition

Pobiera lub ustawia położenie symbolu zastępczego nowego elementu w widoku kolekcji.

Metody

Nazwa Opis
AddNew()

Dodaje nowy element do kolekcji.

CancelEdit()

Kończy edycję transakcji i, jeśli to możliwe, przywraca oryginalną wartość do elementu.

CancelNew()

Kończy dodawanie transakcji i odrzuca oczekujący nowy element.

CommitEdit()

Kończy edycję transakcji i zapisuje oczekujące zmiany.

CommitNew()

Kończy dodawanie transakcji i zapisuje oczekujący nowy element.

EditItem(Object)

Rozpoczyna transakcję edycji określonego elementu.

Remove(Object)

Usuwa określony element z kolekcji.

RemoveAt(Int32)

Usuwa element na określonej pozycji z kolekcji.

Dotyczy