//COMMENT 26.03.2020: // ERROR DESCRIPTION: // see Ticket #1711, problem about icons not appearing: // In the project that was sent to us on the 26th of March 2020: // BasePage.xaml -> ItemsControl named "icSubNavigation" -> ItemTemplate Property -> DataTemplate with the key: dtSubNavigationIcon: // Properly generated in C# but when translated into js, the first letter of the methods that are called is lowercased. // I could not find the conditions nor the reasons for such a case to appear so I settled with the following workaround: // WORKAROUND: // Create an additional private method with the same signature except with the first character of its name lowercased, that calls the original one. // NOTE: // This workaround was used only for the methods that were in that specific case, so we might need to use it for other methods if other cases appear. // Workaround currently used on: // - INTERNAL_GetVisualStateGroups // - RegisterName //END OF COMMENT // Note: this should be protected and the Control class should be abstract. /// <summary> /// Represents the base class for UI elements that use a <see cref="ControlTemplate"/> /// to define their appearance. /// </summary> public Control() { // Initialize the _templateCache to the default value for TemplateProperty. // If the default value is non-null then wire it to the current instance. PropertyMetadata metadata = TemplateProperty.GetMetadata(this.GetType()); ControlTemplate defaultValue = (ControlTemplate)metadata.DefaultValue; if (defaultValue != null) { OnTemplateChanged(this, new DependencyPropertyChangedEventArgs(null, defaultValue, TemplateProperty)); } }
void Initialize() { // Initialize the _templateCache to the default value for TemplateProperty. // If the default value is non-null then wire it to the current instance. PropertyMetadata metadata = TemplateProperty.GetMetadata(DependencyObjectType); DataTemplate defaultValue = (DataTemplate)metadata.DefaultValue; if (defaultValue != null) { OnTemplateChanged(this, new DependencyPropertyChangedEventArgs(TemplateProperty, metadata, null, defaultValue)); } DataContext = null; // this presents a uniform view: CP always has local DC }