-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
ICancelAddNew.xml
174 lines (161 loc) · 11.1 KB
/
ICancelAddNew.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<Type Name="ICancelAddNew" FullName="System.ComponentModel.ICancelAddNew">
<TypeSignature Language="C#" Value="public interface ICancelAddNew" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ICancelAddNew" FrameworkAlternate="net-5.0;net-6.0;net-7.0;netcore-2.0;netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1;netstandard-2.0;netstandard-2.1" />
<TypeSignature Language="DocId" Value="T:System.ComponentModel.ICancelAddNew" />
<TypeSignature Language="VB.NET" Value="Public Interface ICancelAddNew" />
<TypeSignature Language="F#" Value="type ICancelAddNew = interface" />
<TypeSignature Language="C++ CLI" Value="public interface class ICancelAddNew" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit ICancelAddNew" FrameworkAlternate="net-8.0;net-9.0" />
<AssemblyInfo>
<AssemblyName>System</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ComponentModel.TypeConverter</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeForwardingChain>
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.ComponentModel.TypeConverter" ToVersion="5.0.0.0" FrameworkAlternate="net-5.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.ComponentModel.TypeConverter" ToVersion="6.0.0.0" FrameworkAlternate="net-6.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.ComponentModel.TypeConverter" ToVersion="7.0.0.0" FrameworkAlternate="net-7.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.ComponentModel.TypeConverter" ToVersion="8.0.0.0" FrameworkAlternate="net-8.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.ComponentModel.TypeConverter" ToVersion="9.0.0.0" FrameworkAlternate="net-9.0" />
</TypeForwardingChain>
<Interfaces />
<Docs>
<summary>Adds transactional capability when adding a new item to a collection.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.ComponentModel.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 <xref:System.ComponentModel.IBindingList.AddNew%2A> method of the collection is used to tentatively add the item, which is subsequently transacted through the following operations:
- The <xref:System.ComponentModel.ICancelAddNew.EndNew%2A> 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 <xref:System.ComponentModel.ICancelAddNew.CancelNew%2A> method will roll back the pending addition if it has not already been committed.
> [!NOTE]
> In some scenarios, such as Windows Forms complex data binding, the collection may receive <xref:System.ComponentModel.ICancelAddNew.CancelNew%2A> or <xref:System.ComponentModel.ICancelAddNew.EndNew%2A> 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 <xref:System.ComponentModel.IBindingList> interface and is data-bound directly using the <xref:System.Windows.Forms.CurrencyManager?displayProperty=nameWithType> class. The <xref:System.Windows.Forms.CurrencyManager.AddNew%2A>, <xref:System.Windows.Forms.CurrencyManager.EndCurrentEdit%2A>, and <xref:System.Windows.Forms.CurrencyManager.CancelCurrentEdit%2A> methods of the <xref:System.Windows.Forms.CurrencyManager?displayProperty=nameWithType> class are responsible for transactional support for adding new items. However, this functionality depends upon the items supporting transactional behavior through the <xref:System.ComponentModel.IEditableObject> interface. If the items do not support this interface, the item will always be added to the list, regardless of subsequent calls to <xref:System.Windows.Forms.CurrencyManager.CancelCurrentEdit%2A>.
- The newer model supports a more robust data-binding scenario through the generic <xref:System.ComponentModel.BindingList%601> class, which implements the <xref:System.ComponentModel.IBindingList> and <xref:System.ComponentModel.ICancelAddNew> interfaces. In this case, the transactional support is managed by the <xref:System.ComponentModel.BindingList%601> collection directly.
]]></format>
</remarks>
<altmember cref="T:System.ComponentModel.IBindingList" />
<altmember cref="T:System.Windows.Forms.CurrencyManager" />
<altmember cref="T:System.ComponentModel.IEditableObject" />
<altmember cref="T:System.ComponentModel.BindingList`1" />
</Docs>
<Members>
<Member MemberName="CancelNew">
<MemberSignature Language="C#" Value="public void CancelNew (int itemIndex);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CancelNew(int32 itemIndex) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ComponentModel.ICancelAddNew.CancelNew(System.Int32)" />
<MemberSignature Language="VB.NET" Value="Public Sub CancelNew (itemIndex As Integer)" />
<MemberSignature Language="F#" Value="abstract member CancelNew : int -> unit" Usage="iCancelAddNew.CancelNew itemIndex" />
<MemberSignature Language="C++ CLI" Value="public:
 void CancelNew(int itemIndex);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ComponentModel.TypeConverter</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="itemIndex" Type="System.Int32" />
</Parameters>
<Docs>
<param name="itemIndex">The index of the item that was previously added to the collection.</param>
<summary>Discards a pending new item from the collection.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.ComponentModel.ICancelAddNew.CancelNew%2A> method rolls back a pending addition (<xref:System.ComponentModel.IBindingList.AddNew%2A>) of an item previously added to the collection at position `itemIndex`. The index parameter is necessary because several new items can be simultaneously pending.
]]></format>
</remarks>
<altmember cref="M:System.ComponentModel.ICancelAddNew.EndNew(System.Int32)" />
<altmember cref="M:System.Windows.Forms.CurrencyManager.CancelCurrentEdit" />
<altmember cref="T:System.ComponentModel.IEditableObject" />
</Docs>
</Member>
<Member MemberName="EndNew">
<MemberSignature Language="C#" Value="public void EndNew (int itemIndex);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void EndNew(int32 itemIndex) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ComponentModel.ICancelAddNew.EndNew(System.Int32)" />
<MemberSignature Language="VB.NET" Value="Public Sub EndNew (itemIndex As Integer)" />
<MemberSignature Language="F#" Value="abstract member EndNew : int -> unit" Usage="iCancelAddNew.EndNew itemIndex" />
<MemberSignature Language="C++ CLI" Value="public:
 void EndNew(int itemIndex);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ComponentModel.TypeConverter</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="itemIndex" Type="System.Int32" />
</Parameters>
<Docs>
<param name="itemIndex">The index of the item that was previously added to the collection.</param>
<summary>Commits a pending new item to the collection.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The <xref:System.ComponentModel.ICancelAddNew.EndNew%2A> commits a pending addition (<xref:System.ComponentModel.IBindingList.AddNew%2A>) of an item previously added to the collection at position `itemIndex`. The index parameter is necessary because several new items can be simultaneously pending.
]]></format>
</remarks>
<altmember cref="M:System.ComponentModel.ICancelAddNew.CancelNew(System.Int32)" />
<altmember cref="M:System.Windows.Forms.CurrencyManager.EndCurrentEdit" />
</Docs>
</Member>
</Members>
</Type>