IEditableCollectionView Интерфейс

Определение

Определяет методы и свойства, реализуемые классом CollectionView для предоставления возможностей редактирования коллекции.Defines methods and properties that a CollectionView implements to provide editing capabilities to a collection.

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

Примеры

В следующем примере показано, как добавить элемент в коллекцию с помощью методов, определенных IEditableCollectionView.The following example shows how to add an item to a collection by using methods that are defined by IEditableCollectionView. Это приложение отображает список элементов для продажи и дает пользователю возможность добавить, изменить или удалить элемент.This application displays a list of items for sale and gives the user the option of adding, editing, or removing an item. Когда пользователь добавляет или редактирует элемент, форма предлагает пользователю ввести новый элемент.When the user adds or edits an item, a form prompts the user to enter a new item. Если пользователь отправляет форму, элемент фиксируется в коллекции.If the user submits the form, the item is committed to the collection. Если пользователь отменяет форму, элемент отклоняется.If the user cancels the form, the item is discarded. Полный пример см. в разделе изменение коллекции с помощью примера иедитаблеколлектионвиев.For the entire sample, see Changing a Collection by Using IEditableCollectionView Sample.

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 предоставляют, независимо от типа коллекции.When a collection view implements the IEditableCollectionView interface, you can directly change the underlying collection, if it allows changes to be made, by using the methods and properties that IEditableCollectionView exposes, regardless of the collection's type.

ItemCollectionТипы Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) CollectionView, и —ListCollectionView это типы, поставляемые с, которые BindingListCollectionViewнаследуют от.The types ItemCollection, BindingListCollectionView, and ListCollectionView are the types that ship with Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) that inherit from CollectionView. Эти типы также реализуют IEditableCollectionView, поэтому можно изменить коллекцию, использующую один из этих типов.These types also implement the IEditableCollectionView, so you can edit a collection that uses one of those types. ItemCollection, в частности, часто используется, так как ItemsControl.Items свойство ItemCollectionимеет значение.ItemCollection, in particular, is often used because the ItemsControl.Items property is an ItemCollection.

Свойства

CanAddNew

Возвращает значение, указывающее, можно ли добавить новый элемент в коллекцию.Gets a value that indicates whether a new item can be added to the collection.

CanCancelEdit

Возвращает значение, указывающее, может ли представление коллекции отклонить отложенные изменения и восстановить исходные значения изменяемого объекта.Gets a value that indicates whether the collection view can discard pending changes and restore the original values of an edited object.

CanRemove

Возвращает значение, указывающее, можно ли удалить элемент из коллекции.Gets a value that indicates whether an item can be removed from the collection.

CurrentAddItem

Возвращает элемент, добавляемый во время текущей транзакции добавления.Gets the item that is being added during the current add transaction.

CurrentEditItem

Получает элемент в редактируемой коллекции.Gets the item in the collection that is being edited.

IsAddingNew

Получает значение, указывающее, выполняется ли в данный момент транзакция добавления.Gets a value that indicates whether an add transaction is in progress.

IsEditingItem

Получает значение, указывающее, выполняется ли в данный момент транзакция редактирования.Gets a value that indicates whether an edit transaction is in progress.

NewItemPlaceholderPosition

Возвращает или задает положение прототипа нового элемента в представлении коллекции.Gets or sets the position of the new item placeholder in the collection view.

Методы

AddNew()

Добавляет новый элемент в коллекцию.Adds a new item to the collection.

CancelEdit()

Завершает транзакцию изменения и, если это возможно, восстанавливает исходное значение для элемента.Ends the edit transaction and, if possible, restores the original value to the item.

CancelNew()

Завершает транзакцию добавления и отменяет ожидающий новый элемент.Ends the add transaction and discards the pending new item.

CommitEdit()

Завершает транзакцию изменения и сохраняет отложенные изменения.Ends the edit transaction and saves the pending changes.

CommitNew()

Завершает транзакцию добавления и сохраняет ожидаемый новый элемент.Ends the add transaction and saves the pending new item.

EditItem(Object)

Начинает транзакцию редактирования заданного элемента.Begins an edit transaction of the specified item.

Remove(Object)

Удаляет заданный элемент из коллекции.Removes the specified item from the collection.

RemoveAt(Int32)

Удаляет элемент в указанной позиции из коллекции.Removes the item at the specified position from the collection.

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