DevExpress WidgetView动态创建Document

主要结构;三个UserControl(UCContrasctChart,UCChartPreview,UCChartMaxize)

UCChartPreview,UCChartMaxize为空UserControl

UCContrasctChart无界面,cs代码如下:

SoundInsulationSpecification为自定义的实体类。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace Jesus.KeyPart.SoundInsulation
{
    using DevExpress.XtraBars.Docking2010;
    using DevExpress.XtraBars.Docking2010.Views.Widget;
    using DevExpress.XtraEditors;
    using Domain.Entity;

    public partial class UCContrasctChart : DevExpress.XtraEditors.XtraUserControl
    {
        WidgetView view;
        StackGroup group1, group2, group3;

        public UCContrasctChart()
        {
            InitializeComponent();
        }

        public void Initialize(List<SoundInsulationSpecification> selectedInsulationSpecifications)
        {
            AddDocumentManager();
            foreach (SoundInsulationSpecification soundInsulationSpecification in selectedInsulationSpecifications)
            {
                AddDocuments(soundInsulationSpecification);
            }
            //Adding Documents to group1 is not necessary, since all newly created Documents are automatically placed in the first StackGroup.

            int count = selectedInsulationSpecifications.Count;

            int index = 0;

            while (true)
            {
                if (index == count) break;
                group1.Items.Add(view.Documents[index++] as Document);
                if (index == count) break;
                group2.Items.Add(view.Documents[index++] as Document);
                if (index == count) break;
                group3.Items.Add(view.Documents[index++] as Document);
            }
        }

        
        void AddDocumentManager()
        {
            DocumentManager dM = new DocumentManager();
            view = new WidgetView();
            dM.View = view;
            view.AllowDocumentStateChangeAnimation = DevExpress.Utils.DefaultBoolean.True;
            group1 = new StackGroup();
            group2 = new StackGroup();
            group3 = new StackGroup();
            view.StackGroups.AddRange(new StackGroup[] { group1, group2, group3 });
            dM.ContainerControl = this;
        }

        void AddDocuments(SoundInsulationSpecification soundInsulationSpecification)
        {
            Document document = view.AddDocument("Document " + soundInsulationSpecification.ID, "UCChartPreview") as Document;
            document.Caption = string.Format("{0}--规格:{1}曲线", soundInsulationSpecification.SoundInsulationCaption,
                soundInsulationSpecification.Specification);
            document.Properties.ShowCloseButton = DevExpress.Utils.DefaultBoolean.False;
           
            UCChartPreview ucChartPreview=new UCChartPreview();
            //ucChartPreview.Initialize(list);//数据接口
            view.AddDocument(ucChartPreview);

            UCChartMaxize ucChartMaxize = new UCChartMaxize();
            //ucChartMaxize.Initialize(list);//数据接口
            document.MaximizedControl = ucChartMaxize;
        }
    }
}

效果如下图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值