=== ChildItemTemplateSelector (UWP & Xamarin) ===
This returns a fitting template based on the given child item according to the following rules:
<tabs>
<tab name="UWP">
* If the child item is classified with the [[SYSCLS_CHILDITEMTEMPLATE|child item template classification]] and carries a valid child item template name:
** If the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]), it returns a ''UBIKTaskItem'' template.
** If the given MROViewModel contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]]), it returns a ''UBIKProjectItem'' template.
** If nothing of the above fits, it returns a ''UBIKChildItem'' template.
</tab>
<tab name="Xamarin">
* If the child item is classified with the [[SYSCLS_CHILDITEMTEMPLATE|child item template classification]] and carries a valid child item template name:
** Returns that template.
* Otherwise:
** If the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]) and the TaskItemTemplate is not null, it returns that TaskItemTemplate.
** Otherwise, if the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]) & the TaskItemTemplate is null, it returns a ''UBIKTaskItem'' template.
** If nothing of the above fits & the ChildItemTemplate is not null, it returns that ChildItemTemplate.
** If nothing of the above fits & the ChildItemTemplate is null, it returns a ''UBIKChildItem'' template.
</tab></tabs>
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}
This returns a fitting template based on the given root item according to the following rules:
* If the root item is classified with the [[SYSCLS_CHILDITEMTEMPLATE|child item template classification]] and carries a valid root item template name:
** Returns that template.* Otherwise:** If the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]])and the TaskItemTemplate is not null, it returns that TaskItemTemplate.** Otherwise, if the given item is a TaskViewModel (namely if the associated object is a [[MRO_Objects_(Client)#Task|Task]]) & the TaskItemTemplate is null, it returns a ''UBIKTaskItem'' template.** If the given MROViewModel contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]])and the ProjectItemTemplate is not null, it returns that ProjectItemTemplate.** Otherwise, if the given MROViewModel contains ProjectData (namely if the associated object is a [[MRO_Objects_(Client)#MRO_objects_with_project_information_.28WinX_only.29|MRO object with project information]]) and the ProjectItemTemplate is null, it returns a ''UBIKProjectItem'' template. ** If nothing of the above fits& the ChildItemTemplate is not null, it returns that ChildItemTemplate.** If nothing of the above fits & the ChildItemTemplate is null, it returns a ''UBIKMainItem'' template.
{{Hint|To get an overview of how template selectors work, please refer to [[UBIK_Templates#Template_loading_mechanism|Template loading mechanism]].}}