コード例 #1
0
 static DemoPropertyTemplateSelector()
 {
     BuildInDataTemplates.Add(typeof(string), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.String"]);
     BuildInDataTemplates.Add(typeof(bool), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Bool"]);
     BuildInDataTemplates.Add(typeof(bool?), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Bool.Nullable"]);
     BuildInDataTemplates.Add(typeof(Enum), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Enum"]);
     BuildInDataTemplates.Add(typeof(double), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Numeric"]);
     BuildInDataTemplates.Add(typeof(double?), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Numeric"]);
     BuildInDataTemplates.Add(typeof(int), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Numeric"]);
     BuildInDataTemplates.Add(typeof(int?), (DataTemplate)Application.Current.Resources["Demo.DataTemplates.Numeric"]);
 }
コード例 #2
0
        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {
            if (item is DemoProperty demoProperty)
            {
                if (demoProperty.Descriptor.PropertyType.IsEnum)
                {
                    return(BuildInDataTemplates[typeof(Enum)]);
                }

                return(BuildInDataTemplates.TryGetValue(demoProperty.Descriptor.PropertyType, out DataTemplate result) ? result : BuildInDataTemplates[typeof(string)]);
            }
            else
            {
                return(FallbackTemplate);
            }
        }