XamlType.CanAssignTo(XamlType) Method


Returns a value that indicates whether an instance of this XamlType has the specified XamlType in its list of assignable types.

 virtual bool CanAssignTo(System::Xaml::XamlType ^ xamlType);
public virtual bool CanAssignTo (System.Xaml.XamlType xamlType);
abstract member CanAssignTo : System.Xaml.XamlType -> bool
override this.CanAssignTo : System.Xaml.XamlType -> bool
Public Overridable Function CanAssignTo (xamlType As XamlType) As Boolean



The type to check against the current XamlType .



true if xamlType is in the assignable types list; otherwise, false.


Although the assignable type does not have all the capabilities of the reference type, you can use it for assignment. For example, you can use assignment to make type matches for the values of a property. The concept of assignable types in XAML is similar to the concept of casting up in the CLR type system. For example, under a CLR type system, every type has an Object in its assignable type list.

If one of the two XamlType instances that are used for comparison has IsUnknown equal to true, this method has a special Unknown mode that returns true if the two XamlType instances are equivalent.

The default implementation uses the CLR Type from UnderlyingType for this XamlType and the input XamlType, and calls IsAssignableFrom. Override this method if you want a different determination of assignable types.

Passing a null xamlType does not throw an exception and always returns false.


CanAssignTo is virtual, and therefore, can be overridden. The override has the potential (whether for malicious purposes or otherwise) to change the assignability of a XAML type so that it no longer aligns in an expected way with the type-casting behavior of its underlying CLR type. For any security-critical checks of assignment operations and access, use the underlying CLR type instead.

Applies to