XAML is a common method of instantiating, net objects, including those located in non-WPF namespaces and in namespaces that you create yourself
To use a class that is not defined in WPF, you need to map the. Net namespace to the XML namespace, and you can use a special syntax like this to accomplish this.
xmlns:prefix= "Clr-namespace:namespace;assembly=assemblname"
The type of the System namespace is as follows:
xmlns:sys= "Clr-namespace:system;assembly=mscorlib"
You can now create an instance of a namespace class, using the namespace prefix:
<local:myobject. ></local:Myobject>
Tip
Keep in mind that any namespace prefixes that you want to use can be used as long as they are consistent throughout the XAML document, but the SYS and local prefixes are typically used in importing the System namespace and the current project's namespace.
Ideally, each class that you want to use in XAML has a parameterless constructor, and if you have a parameterless constructor, the XAML parser can create the corresponding object, set its properties, and associate any of the provided event handlers, and the XAML does not support a parameter constructor
and all of the elements in WPF contain parameterless constructors, and you need to be able to use public properties to set all the details you expect XAML does not allow setting public fields or calling methods
If you want to use a class that does not have a parameterless constructor, there are some limitations, and if you attempt to create a simple base type that provides the string representation of the data as content in the label, the XAML parser then uses the type converter to convert the string to the appropriate object as follows:
<sys:datetime>10/20/2016 pm</sys:datetime>
Because the DateTime class uses the TypeConverter attribute to associate itself to the Datetimeconverter class, the above markup works. The Datetimeconverter class knows that this string is a legitimate DateTime object and converts it, and when this technique is used, the feature cannot be used
Set any properties for your object
If the class does not have an argument-free constructor, and there is no suitable type converter, it cannot succeed
Workaround
1/Create a custom wrapper to overcome these limitations. But such hard coding can be difficult to locate using exceptions
2/Use event-handling code to control objects without using XAML at all (in the background)
WPF uses a different namespace (treasure 1)