IEditableCollectionView Gränssnitt

Definition

Definierar metoder och egenskaper som implementeras CollectionView för att ge redigeringsfunktioner till en samling.

public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
Härledda

Exempel

I följande exempel visas hur du lägger till ett objekt i en samling med hjälp av metoder som definieras av IEditableCollectionView. Det här programmet visar en lista över objekt till salu och ger användaren möjlighet att lägga till, redigera eller ta bort ett objekt. När användaren lägger till eller redigerar ett objekt uppmanas användaren att ange ett nytt objekt i ett formulär. Om användaren skickar formuläret checkas objektet in i samlingen. Om användaren avbryter formuläret ignoreras objektet. Hela exemplet finns i Changing a Collection by Using 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

Kommentarer

När en samlingsvy implementerar IEditableCollectionView gränssnittet kan du direkt ändra den underliggande samlingen, om den tillåter att ändringar görs, med hjälp av de metoder och egenskaper som IEditableCollectionView exponeras, oavsett samlingens typ.

Typerna ItemCollection, BindingListCollectionView och ListCollectionView är de typer som levereras med Windows Presentation Foundation (WPF) som ärver från CollectionView. Dessa typer implementerar IEditableCollectionViewockså , så att du kan redigera en samling som använder en av dessa typer. ItemCollection, i synnerhet, används ofta eftersom egenskapen ItemsControl.Items är en ItemCollection.

Egenskaper

Name Description
CanAddNew

Hämtar ett värde som anger om ett nytt objekt kan läggas till i samlingen.

CanCancelEdit

Hämtar ett värde som anger om samlingsvyn kan ignorera väntande ändringar och återställa de ursprungliga värdena för ett redigerat objekt.

CanRemove

Hämtar ett värde som anger om ett objekt kan tas bort från samlingen.

CurrentAddItem

Hämtar det objekt som läggs till under den aktuella tilläggstransaktionen.

CurrentEditItem

Hämtar objektet i samlingen som redigeras.

IsAddingNew

Hämtar ett värde som anger om en tilläggstransaktion pågår.

IsEditingItem

Hämtar ett värde som anger om en redigeringstransaktion pågår.

NewItemPlaceholderPosition

Hämtar eller anger positionen för den nya objektplatshållaren i samlingsvyn.

Metoder

Name Description
AddNew()

Lägger till ett nytt objekt i samlingen.

CancelEdit()

Avslutar redigeringstransaktionen och återställer om möjligt det ursprungliga värdet till objektet.

CancelNew()

Avslutar lägg till transaktionen och tar bort det väntande nya objektet.

CommitEdit()

Avslutar redigeringstransaktionen och sparar de väntande ändringarna.

CommitNew()

Avslutar lägg till transaktionen och sparar det väntande nya objektet.

EditItem(Object)

Påbörjar en redigeringstransaktion av det angivna objektet.

Remove(Object)

Tar bort det angivna objektet från samlingen.

RemoveAt(Int32)

Tar bort objektet på den angivna positionen från samlingen.

Gäller för