private static void OnItemContainerStyleSelectorChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            TemplateProviderControl control = sender as TemplateProviderControl;

            control.itemContainerStyleSelectorCache = e.NewValue as StyleSelector;
            control.OnItemContainerStyleSelectorChanged(e.OldValue as StyleSelector);
            control.InvalidateUI();
        }
        private static void OnItemTemplateChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
        {
            TemplateProviderControl control = sender as TemplateProviderControl;

            control.itemTemplateCache = e.NewValue as DataTemplate;
            control.OnItemTemplateChanged(e.OldValue as DataTemplate);
            control.InvalidateUI();
        }