XamlTypeInvoker.AddToCollection(Object, Object) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Adds the provided item to an instance of the type that is relevant to this XamlTypeInvoker.
public:
virtual void AddToCollection(System::Object ^ instance, System::Object ^ item);
public virtual void AddToCollection (object instance, object item);
abstract member AddToCollection : obj * obj -> unit
override this.AddToCollection : obj * obj -> unit
Public Overridable Sub AddToCollection (instance As Object, item As Object)
Parameters
- instance
- Object
An instance of the type specified by the XamlType used for constructing this XamlTypeInvoker.
- item
- Object
The item to add.
Exceptions
Invoked this method on a XamlTypeInvoker that is based on an unknown XamlType.
-or-
Invoked this method on a XamlTypeInvoker where the relevant type is not a collection.
instance
is null
.
GetAddMethod(XamlType) for this XamlTypeInvoker returns null
.
Remarks
You should only call this method on a XamlType that represents a collection.
Notes to Inheritors
The base implementation includes a call to the internal helper ThrowIfUnknown
. This helper always throws for cases where a XamlTypeInvoker is based on an unknown XamlType, which includes cases where the UnderlyingType of the XamlType is null
.
Internally, the base implementation calls IsCollection, and throws if the result is false
.
The base implementation does not necessarily use its own GetAddMethod(XamlType) implementation. First, a cast of instance
to IList is attempted. If this succeeds, a call to Add(Object) is made and the method returns. Otherwise, the base implementation uses CLR Invoke(Object, Object[]) to invoke the underlying Add
method, as obtained from a call to GetAddMethod(XamlType) for this XamlTypeInvoker.
In the base implementation no exception is raised at this level if item
is null
. It is still possible that the underlying Add
method will raise an exception when invoked. Other run time exceptions are possible if ItemType does not return a valid result.