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) |
Удаляет элемент в указанной позиции из коллекции. |