Beispiel #1
0
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            if (!(container is UIElement))
            {
                return(base.SelectTemplate(item, container));
            }

            DataTemplateHolderCollection templates = GetTemplates(container as UIElement);

            if (templates == null || templates.Count == 0)
            {
                base.SelectTemplate(item, container);
            }

            foreach (DataTemplateHolder template in templates)
            {
                if (template.Value.IsInstanceOfType(item))
                {
                    return(template.DataTemplate);
                }
            }

            return(base.SelectTemplate(item, container));
        }
Beispiel #2
0
 public static void SetTemplates(UIElement element, DataTemplateHolderCollection collection)
 {
     element.SetValue(TemplatesProperty, collection);
 }