主要结构;三个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;
}
}
}
效果如下图: