/// <summary>
        /// Retrieved a <see cref="DataTemplate"/> instance for the specified <see cref="IPropertyGridItem"/>.
        /// </summary>
        /// <param name="item">The <see cref="IPropertyGridItem"/>.</param>
        /// <returns>A <see cref="DataTemplate"/> instace for the specified <see cref="IPropertyGridItem"/>.</returns>
        protected virtual DataTemplate SelectTemplate(IPropertyGridItem item)
        {
            if (item == null)
            {
                return null;
            }

            var propertyType = item.GetType().GetGenericArguments()[0];

            if (propertyType.IsEnum)
            {
                return (DataTemplate)_contentPresenter.Resources["EnumPropertyDataTemplate"];
            }

            if (propertyType == typeof(DateTime))
            {
                return (DataTemplate)_contentPresenter.Resources["DateTimePropertyDataTemplate"];
            }

            if (propertyType == typeof(bool))
            {
                return (DataTemplate)_contentPresenter.Resources["BoolPropertyDataTemplate"];
            }

            if (propertyType.IsPrimitive || propertyType == typeof(string))
            {
                return (DataTemplate)_contentPresenter.Resources["PrimitivePropertyDataTemplate"];
            }

            return (DataTemplate)_contentPresenter.Resources["ObjectPropertyDataTemplate"];
        }
예제 #2
0
        /// <summary>
        /// Retrieved a <see cref="DataTemplate"/> instance for the specified <see cref="IPropertyGridItem"/>.
        /// </summary>
        /// <param name="item">The <see cref="IPropertyGridItem"/>.</param>
        /// <returns>A <see cref="DataTemplate"/> instace for the specified <see cref="IPropertyGridItem"/>.</returns>
        protected virtual DataTemplate SelectTemplate(IPropertyGridItem item)
        {
            if (item == null)
            {
                return(null);
            }

            var propertyType = item.GetType().GetGenericArguments()[0];

            if (propertyType.IsEnum)
            {
                return((DataTemplate)_contentPresenter.Resources["EnumPropertyDataTemplate"]);
            }

            if (propertyType == typeof(DateTime))
            {
                return((DataTemplate)_contentPresenter.Resources["DateTimePropertyDataTemplate"]);
            }

            if (propertyType == typeof(bool))
            {
                return((DataTemplate)_contentPresenter.Resources["BoolPropertyDataTemplate"]);
            }

            if (propertyType.IsPrimitive || propertyType == typeof(string))
            {
                return((DataTemplate)_contentPresenter.Resources["PrimitivePropertyDataTemplate"]);
            }

            return((DataTemplate)_contentPresenter.Resources["ObjectPropertyDataTemplate"]);
        }