IEditableCollectionView Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define métodos e propriedades que um CollectionView implementa para fornecer recursos de edição para uma coleção.
public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
- Derivado
Exemplos
O exemplo a seguir mostra como adicionar um item a uma coleção usando métodos definidos por IEditableCollectionView. Esse aplicativo exibe uma lista de itens à venda e dá ao usuário a opção de adicionar, editar ou remover um item. Quando o usuário adiciona ou edita um item, um formulário solicita que o usuário insira um novo item. Se o usuário enviar o formulário, o item será confirmado na coleção. Se o usuário cancelar o formulário, o item será descartado. Para o exemplo inteiro, consulte Como alterar uma coleção usando o exemplo 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
Comentários
Quando uma exibição de coleção implementa a IEditableCollectionView interface, você pode alterar diretamente a coleção subjacente, se ela permitir que alterações sejam feitas, usando os métodos e propriedades que IEditableCollectionView expõem, independentemente do tipo da coleção.
Os tipos ItemCollection, BindingListCollectionViewe ListCollectionView são os tipos que são fornecidos com o Windows Presentation Foundation (WPF) que herdam de CollectionView. Esses tipos também implementam o IEditableCollectionView, para que você possa editar uma coleção que usa um desses tipos. ItemCollection, em particular, geralmente é usado porque a ItemsControl.Items propriedade é um ItemCollection.
Propriedades
| Nome | Description |
|---|---|
| CanAddNew |
Obtém um valor que indica se um novo item pode ser adicionado à coleção. |
| CanCancelEdit |
Obtém um valor que indica se a exibição de coleção pode descartar alterações pendentes e restaurar os valores originais de um objeto editado. |
| CanRemove |
Obtém um valor que indica se um item pode ser removido da coleção. |
| CurrentAddItem |
Obtém o item que está sendo adicionado durante a transação de adição atual. |
| CurrentEditItem |
Obtém o item na coleção que está sendo editada. |
| IsAddingNew |
Obtém um valor que indica se uma transação de adição está em andamento. |
| IsEditingItem |
Obtém um valor que indica se uma transação de edição está em andamento. |
| NewItemPlaceholderPosition |
Obtém ou define a posição do novo espaço reservado do item no modo de exibição de coleção. |
Métodos
| Nome | Description |
|---|---|
| AddNew() |
Adiciona um novo item à coleção. |
| CancelEdit() |
Termina a transação de edição e, se possível, restaura o valor original para o item. |
| CancelNew() |
Termina a transação de adição e descarta o novo item pendente. |
| CommitEdit() |
Encerra a transação de edição e salva as alterações pendentes. |
| CommitNew() |
Encerra a transação de adição e salva o novo item pendente. |
| EditItem(Object) |
Inicia uma transação de edição do item especificado. |
| Remove(Object) |
Remove o item especificado da coleção. |
| RemoveAt(Int32) |
Remove o item na posição especificada da coleção. |