Поделиться через


IEditableCollectionView Интерфейс

Определение

Определяет методы и свойства, которые реализуются для CollectionView предоставления возможностей редактирования коллекции.

public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
Производный

Примеры

В следующем примере показано, как добавить элемент в коллекцию с помощью методов, определенных с помощью IEditableCollectionViewметодов. Это приложение отображает список элементов для продажи и предоставляет пользователю возможность добавления, редактирования или удаления элемента. Когда пользователь добавляет или редактирует элемент, форма предложит пользователю ввести новый элемент. Если пользователь отправляет форму, элемент фиксируется в коллекции. Если пользователь отменяет форму, элемент удаляется. Полный пример см. в разделе "Изменение коллекции с помощью примера 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

Комментарии

Если представление коллекции реализует IEditableCollectionView интерфейс, можно напрямую изменить базовую коллекцию, если она позволяет вносить изменения, используя методы и свойства, которые IEditableCollectionView предоставляются независимо от типа коллекции.

Типы и BindingListCollectionViewListCollectionView типыItemCollection, которые отправляются с Windows Presentation Foundation (WPF), от которых наследуютсяCollectionView. Эти типы также реализуют коллекцию IEditableCollectionView, которая использует один из этих типов. ItemCollectionв частности, часто используется, так как ItemsControl.Items свойство является ItemCollection.

Свойства

Имя Описание
CanAddNew

Возвращает значение, указывающее, можно ли добавить новый элемент в коллекцию.

CanCancelEdit

Возвращает значение, указывающее, может ли представление коллекции отменить ожидающие изменения и восстановить исходные значения измененного объекта.

CanRemove

Возвращает значение, указывающее, можно ли удалить элемент из коллекции.

CurrentAddItem

Возвращает элемент, добавляемый во время текущей транзакции добавления.

CurrentEditItem

Возвращает элемент в коллекции, которая редактируется.

IsAddingNew

Возвращает значение, указывающее, выполняется ли транзакция добавления.

IsEditingItem

Возвращает значение, указывающее, выполняется ли транзакция редактирования.

NewItemPlaceholderPosition

Возвращает или задает позицию заполнителя нового элемента в представлении коллекции.

Методы

Имя Описание
AddNew()

Добавляет новый элемент в коллекцию.

CancelEdit()

Завершает транзакцию редактирования и, если это возможно, восстанавливает исходное значение элемента.

CancelNew()

Завершает транзакцию добавления и удаляет ожидающий новый элемент.

CommitEdit()

Завершает транзакцию редактирования и сохраняет ожидающие изменения.

CommitNew()

Завершает операцию добавления и сохраняет ожидающий новый элемент.

EditItem(Object)

Начинает транзакцию редактирования указанного элемента.

Remove(Object)

Удаляет указанный элемент из коллекции.

RemoveAt(Int32)

Удаляет элемент в указанной позиции из коллекции.

Применяется к