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


IEditableCollectionView Интерфейс

Определение

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

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

Примеры

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

Комментарии

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

Типы ItemCollection, BindingListCollectionViewи ListCollectionView — это типы, поставляемые с 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)

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

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