[DEVEXPRESS/WINFORM] DiagramControl 클래스 : 자기 참조 데이터 소스에서 다이어그램 생성하기
DevExpress/WinForm 2020. 6. 6. 12:31728x90
반응형
728x170
▶ MainForm.cs
using System.Collections.Generic;
using DevExpress.Diagram.Core;
using DevExpress.XtraDiagram;
using DevExpress.XtraEditors;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
#region 직원 리스트를 설정한다.
List<Employee> employeeList = new List<Employee>();
employeeList.Add(new Employee() { ID = 0, Name = "Carl" });
employeeList.Add(new Employee() { ID = 1, ParentID = 0, Name = "Bob" });
employeeList.Add(new Employee() { ID = 2, ParentID = 1, Name = "Ann" });
employeeList.Add(new Employee() { ID = 3, ParentID = 1, Name = "Jack" });
#endregion
#region 다이어그램 조직 차트 컨트롤러를 설정한다.
DiagramOrgChartController diagramOrgChartController = new DiagramOrgChartController();
diagramOrgChartController.KeyMember = "ID";
diagramOrgChartController.ParentMember = "ParentID";
diagramOrgChartController.LayoutKind = DiagramLayoutKind.Tree;
diagramOrgChartController.DataSource = employeeList;
#endregion
diagramOrgChartController.GenerateItem += diagramOrgChartController_GenerateItem;
diagramOrgChartController.Diagram = this.diagramControl;
this.diagramControl.FitToDrawing();
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 다이어그램 조직 차트 컨트롤러 항목 생성시 처리하기 - diagramOrgChartController_GenerateItem(sender, e)
/// <summary>
/// 다이어그램 조직 차트 컨트롤러 항목 생성시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void diagramOrgChartController_GenerateItem(object sender, DiagramGenerateItemEventArgs e)
{
DiagramShape item = new DiagramShape
{
X = 20,
Width = 75,
Height = 50,
Shape = BasicShapes.Rectangle
};
item.Bindings.Add(new DiagramBinding("Content", "Name"));
e.Item = item;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요