/// <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)); } }
/// <summary> /// 使用 AutoGrid 来生成表单。 /// </summary> /// <param name="detailView"></param> /// <param name="properties"></param> /// <returns></returns> protected FrameworkElement GenerateGridEditors(DetailLogicalView detailView, IEnumerable <WPFEntityPropertyViewMeta> properties) { var panel = new AutoGrid { ColumnsCount = detailView.CalculateColumnsCount(properties), Orientation = detailView.Meta.DetailAsHorizontal ? Orientation.Horizontal : Orientation.Vertical }; foreach (var propertyView in properties) { panel.Children.Add(new EditorHost { EntityProperty = propertyView }); } return(EnableScoller(panel, panel.Orientation)); }
/// <summary> /// 使用 AutoGrid 来生成表单。 /// </summary> /// <param name="detailView"></param> /// <param name="properties"></param> /// <returns></returns> protected FrameworkElement GenerateGridEditors(DetailLogicalView detailView, IEnumerable<WPFEntityPropertyViewMeta> properties) { var panel = new AutoGrid { ColumnsCount = detailView.CalculateColumnsCount(properties), Orientation = detailView.Meta.DetailAsHorizontal ? Orientation.Horizontal : Orientation.Vertical }; foreach (var propertyView in properties) { panel.Children.Add(new EditorHost { EntityProperty = propertyView }); } return EnableScoller(panel, panel.Orientation); }
/// <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); } }