Edit

Share via


XamlTypeInvoker.AddToCollection(Object, Object) Method

Definition

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.

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.

Applies to