次の方法で共有


ICancelAddNew インターフェイス

定義

コレクションに新しい項目を追加する際のトランザクション機能を追加します。

public interface class ICancelAddNew
public interface ICancelAddNew
type ICancelAddNew = interface
Public Interface ICancelAddNew
派生

注釈

ICancelAddNewインターフェイスを使用すると、コレクションは拡張可能な方法で新しい項目を追加できます。 その後、新しい項目をコミットまたはロールバックできます。 AddNewコレクションの メソッドは、アイテムを仮に追加するために使用され、その後、次の操作によって処理されます。

  • EndNew メソッドによって、保留中の追加が明示的にコミットされます。

  • 挿入、削除、移動などの別のコレクション操作を実行すると、保留中の追加が暗黙的にコミットされます。

  • まだコミットされていない場合、メソッドは CancelNew 保留中の追加をロールバックします。

注意

複雑なデータ バインディングWindows フォームなど、一部のシナリオでは、コレクションが新しく追加された項目以外の項目を受信CancelNewまたはEndNew呼び出す場合があります。 (各項目は通常、データ ビューの行です)。これらの呼び出しは無視します。その項目のインデックスが指定されている場合にのみ、新しい項目を取り消すかコミットします。

データ バインド コレクションへの項目のトランザクション追加を可能にするモデルは 2 つあります。

  • 古いモデルは、 インターフェイスを実装し、 クラスを IBindingList 使用して直接データバインドされるコレクションに System.Windows.Forms.CurrencyManager 直接依存しています。 クラスの 、EndCurrentEdit、および CancelCurrentEdit メソッドはAddNew、新しい項目をSystem.Windows.Forms.CurrencyManager追加するためのトランザクション サポートを担当します。 ただし、この機能は、 インターフェイスを介した IEditableObject トランザクション動作をサポートする項目によって異なります。 項目がこのインターフェイスをサポートしていない場合、後続の の 呼び出しに関係なく、アイテムは常にリストに CancelCurrentEdit追加されます。

  • 新しいモデルでは、 インターフェイスと ICancelAddNew インターフェイスを実装するジェネリック BindingList<T> クラスを使用して、より堅牢なデータ バインディング シナリオがIBindingListサポートされます。 この場合、トランザクション サポートはコレクションによって BindingList<T> 直接管理されます。

メソッド

CancelNew(Int32)

保留中の新しい項目をコレクションから破棄します。

EndNew(Int32)

保留中の新しい項目をコレクションにコミットします。

適用対象

こちらもご覧ください