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

            control.itemTemplateSelectorCache = e.NewValue as DataTemplateSelector;
            control.OnItemTemplateSelectorChanged(e.OldValue as DataTemplateSelector);
            control.InvalidateUI();
        }