ICancelAddNew Интерфейс

Определение

Добавляет поддержку транзакций при добавлении нового элемента в коллекцию.Adds transactional capability when adding a new item to a collection.

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

Комментарии

Интерфейс ICancelAddNew позволяет коллекции добавлять новый элемент расширяемым способом.The ICancelAddNew interface enables a collection to add a new item in an extensible way. Впоследствии новый элемент можно будет зафиксировать или откатить.The new item subsequently can be committed or rolled back. Метод AddNew коллекции используется для предварительной установки элемента, который затем переносится в транзакции с помощью следующих операций:The AddNew method of the collection is used to tentatively add the item, which is subsequently transacted through the following operations:

  • Метод EndNew явно зафиксирует ожидающее добавление.The EndNew method will explicitly commit the pending addition.

  • Выполнение другой операции сбора, например вставки, удаления или перемещения, неявно фиксирует ожидающее добавление.Performing another collection operation, such as an insertion, removal, or move will implicitly commit the pending addition.

  • Метод CancelNew будет выполнять откат ожидающего добавления, если он еще не был зафиксирован.The CancelNew method will roll back the pending addition if it has not already been committed.

Примечание

В некоторых сценариях, таких как Windows Forms сложная привязка данных, коллекция может принимать CancelNew или EndNew вызовы для элементов, отличных от вновь добавленного элемента.In some scenarios, such as Windows Forms complex data binding, the collection may receive CancelNew or EndNew calls for items other than the newly added item. (Обычно каждый элемент является строкой в представлении данных.) Игнорировать эти вызовы; Отмена или фиксация нового элемента только в том случае, если указан индекс этого элемента.(Each item is typically a row in a data view.) Ignore these calls; cancel or commit the new item only when that item's index is specified.

Существует две модели, которые позволяют добавить элемент в коллекцию с привязкой к данным с помощью транзакций.There are two models that allow transactional addition of an item to a data-bound collection:

  • Более старая модель полагается непосредственно на коллекцию, которая реализует интерфейс IBindingList и привязана к данным непосредственно с помощью класса System.Windows.Forms.CurrencyManager.The older model relies directly on a collection that implements the IBindingList interface and is data-bound directly using the System.Windows.Forms.CurrencyManager class. Методы AddNew, EndCurrentEditи CancelCurrentEdit класса System.Windows.Forms.CurrencyManager отвечают за поддержку транзакций для добавления новых элементов.The AddNew, EndCurrentEdit, and CancelCurrentEdit methods of the System.Windows.Forms.CurrencyManager class are responsible for transactional support for adding new items. Однако эта функциональность зависит от элементов, поддерживающих транзакционное поведение, через интерфейс IEditableObject.However, this functionality depends upon the items supporting transactional behavior through the IEditableObject interface. Если элементы не поддерживают этот интерфейс, элемент всегда будет добавлен в список, независимо от последующих вызовов CancelCurrentEdit.If the items do not support this interface, the item will always be added to the list, regardless of subsequent calls to CancelCurrentEdit.

  • Новая модель поддерживает более надежный сценарий привязки данных с помощью универсального класса BindingList<T>, который реализует интерфейсы IBindingList и ICancelAddNew.The newer model supports a more robust data-binding scenario through the generic BindingList<T> class, which implements the IBindingList and ICancelAddNew interfaces. В этом случае поддержка транзакций управляется непосредственно коллекцией BindingList<T>.In this case, the transactional support is managed by the BindingList<T> collection directly.

Методы

CancelNew(Int32)

Удаляет незафиксированный новый элемент из коллекции.Discards a pending new item from the collection.

EndNew(Int32)

Фиксирует незафиксированный новый элемент в коллекции.Commits a pending new item to the collection.

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

Дополнительно