IEditableCollectionView Interface
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define métodos e propriedades que um CollectionView implementa para fornecer capacidades de edição a uma coleção.
public interface class IEditableCollectionView
public interface IEditableCollectionView
type IEditableCollectionView = interface
Public Interface IEditableCollectionView
- Derivado
Exemplos
O exemplo seguinte mostra como adicionar um item a uma coleção usando métodos definidos por IEditableCollectionView. Esta aplicação apresenta uma lista de artigos à venda e dá ao utilizador a opção de adicionar, editar ou remover um item. Quando o utilizador adiciona ou edita um item, um formulário pede-lhe que insira um novo item. Se o utilizador submeter o formulário, o item é comprometido para a coleção. Se o utilizador cancelar o formulário, o item é descartado. Para a amostra completa, veja Alterar uma Coleção Usando a Amostra 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
Observações
Quando uma vista de coleção implementa a IEditableCollectionView interface, pode alterar diretamente a coleção subjacente, se permitir alterações, usando os métodos e propriedades que IEditableCollectionView expõem, independentemente do tipo da coleção.
Os tipos ItemCollection, BindingListCollectionView e ListCollectionView são os tipos que vêm com Windows Presentation Foundation (WPF) que herdam de CollectionView. Estes tipos também implementam o IEditableCollectionView, por isso podes editar uma coleção que use um desses tipos. ItemCollection, em particular, é frequentemente usado porque a ItemsControl.Items propriedade é um ItemCollection.
Propriedades
| Name | Description |
|---|---|
| CanAddNew |
Recebe um valor que indica se um novo item pode ser adicionado à coleção. |
| CanCancelEdit |
Recebe um valor que indica se a vista de coleção pode descartar alterações pendentes e restaurar os valores originais de um objeto editado. |
| CanRemove |
Recebe um valor que indica se um item pode ser removido da coleção. |
| CurrentAddItem |
Recebe o item que está a ser adicionado durante a transação atual de adição. |
| CurrentEditItem |
Recebe o item da coleção que está a ser editado. |
| IsAddingNew |
Recebe um valor que indica se uma transação de adição está em curso. |
| IsEditingItem |
Recebe um valor que indica se uma transação de edição está em curso. |
| NewItemPlaceholderPosition |
Obtém ou define a posição do novo item marcador na vista da coleção. |
Métodos
| Name | Description |
|---|---|
| AddNew() |
Adiciona um novo item à coleção. |
| CancelEdit() |
Termina a transação de edição e, se possível, restaura o valor original do item. |
| CancelNew() |
Termina a transação de adicionar e descarta o novo item pendente. |
| CommitEdit() |
Termina a transação de edição e guarda as alterações pendentes. |
| CommitNew() |
Termina a transação de adicionar e guarda 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. |