Exemplo n.º 1
0
        /// <summary>
        /// 根据 DetailLayoutMode 的值生成动态布局的表单。
        /// </summary>
        /// <param name="detailView"></param>
        /// <param name="properties"></param>
        /// <returns></returns>
        protected FrameworkElement GenerateEditors(
            DetailLogicalView detailView,
            IEnumerable <WPFEntityPropertyViewMeta> properties,
            DetailLayoutMode layoutMode
            )
        {
            if (detailView is QueryLogicalView)
            {
                return(this.GenerateGridEditors(detailView, properties));
            }

            switch (layoutMode)
            {
            case DetailLayoutMode.Dynamic:
                if (detailView.CalculateColumnsCount(properties) == 1)
                {
                    return(this.GenerateGridEditors(detailView, properties));
                }
                else
                {
                    return(this.GenerateWrappingEditors(detailView, properties));
                }

            case DetailLayoutMode.Wrapping:
                return(this.GenerateWrappingEditors(detailView, properties));

            case DetailLayoutMode.AutoGrid:
                return(this.GenerateGridEditors(detailView, properties));

            default:
                return(this.GenerateWrappingEditors(detailView, properties));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 声明当前表单使用的布局模式。
        /// </summary>
        /// <param name="meta">The meta.</param>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        public static WPFEntityViewMeta UseDetailLayoutMode(this WPFEntityViewMeta meta, DetailLayoutMode value)
        {
            meta.DetailLayoutMode = value;

            return(meta);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 声明当前表单使用的布局模式。
        /// </summary>
        /// <param name="meta">The meta.</param>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        public static WPFDetailPropertyGroup UseDetailLayoutMode(this WPFDetailPropertyGroup meta, DetailLayoutMode value)
        {
            meta.LayoutMode = value;

            return(meta);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 根据 DetailLayoutMode 的值生成动态布局的表单。
        /// </summary>
        /// <param name="detailView"></param>
        /// <param name="properties"></param>
        /// <returns></returns>
        protected FrameworkElement GenerateEditors(
            DetailLogicalView detailView,
            IEnumerable<WPFEntityPropertyViewMeta> properties,
            DetailLayoutMode layoutMode
            )
        {
            if (detailView is QueryLogicalView)
            {
                return this.GenerateGridEditors(detailView, properties);
            }

            switch (layoutMode)
            {
                case DetailLayoutMode.Dynamic:
                    if (detailView.CalculateColumnsCount(properties) == 1)
                    {
                        return this.GenerateGridEditors(detailView, properties);
                    }
                    else
                    {
                        return this.GenerateWrappingEditors(detailView, properties);
                    }
                case DetailLayoutMode.Wrapping:
                    return this.GenerateWrappingEditors(detailView, properties);
                case DetailLayoutMode.AutoGrid:
                    return this.GenerateGridEditors(detailView, properties);
                default:
                    return this.GenerateWrappingEditors(detailView, properties);
            }
        }