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