ICancelAddNew Interface

Adds transactional capability when adding a new item to a collection.

Namespace: System.ComponentModel
Assembly: System (in system.dll)

public interface ICancelAddNew
public interface ICancelAddNew
public interface ICancelAddNew
Not applicable.

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. The AddNew method of the collection is used to tentatively add the item, which is subsequently transacted through the following operations:

  • 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.

  • The CancelNew method will roll back the pending addition if it has not already been committed.


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:

  • 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. The AddNew, EndCurrentEdit, and CancelCurrentEdit methods of the System.Windows.Forms.CurrencyManager class are responsible for transactional support for adding new items. However, this functionality depends upon the items supporting transactional behavior through the IEditableObject interface. If the items do not support this interface, the item will always be added to the list, regardless of subsequent calls to CancelCurrentEdit.

  • The newer model supports a more robust data-binding scenario through the generic BindingList class, which implements the IBindingList and ICancelAddNew interfaces. In this case, the transactional support is managed by the BindingList collection directly.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

.NET Compact Framework

Supported in: 2.0

XNA Framework

Supported in: 1.0