728x90
728x170
▶ CustomRepositoryItemGridLookUpEdit.cs
using System.Data;
using System.Drawing;
using DevExpress.XtraEditors.Drawing;
using DevExpress.XtraEditors.Registrator;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraEditors.ViewInfo;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
namespace TestProject
{
/// <summary>
/// 커스텀 저장소 항목 그리드 룩업 에디터
/// </summary>
[UserRepositoryItem("Register")]
public class CustomRepositoryItemGridLookUpEdit : RepositoryItemGridLookUpEdit
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Public
#region Field
/// <summary>
/// 에디터명
/// </summary>
public const string EditorName = "CustomGridLookUpEdit";
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 에디터 타입명 - EditorTypeName
/// <summary>
/// 에디터 타입명
/// </summary>
public override string EditorTypeName
{
get
{
return EditorName;
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Static
#region 생성자 - CustomRepositoryItemGridLookUpEdit()
/// <summary>
/// 생성자
/// </summary>
static CustomRepositoryItemGridLookUpEdit()
{
Register();
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Instance
//////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - CustomRepositoryItemGridLookUpEdit()
/// <summary>
/// 생성자
/// </summary>
public CustomRepositoryItemGridLookUpEdit()
{
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
#region 등록하기 - Register()
/// <summary>
/// 등록하기
/// </summary>
public static void Register()
{
Image image = null;
EditorRegistrationInfo.Default.Editors.Add
(
new EditorClassInfo
(
EditorName,
typeof(CustomGridLookUpEdit),
typeof(CustomRepositoryItemGridLookUpEdit),
typeof(GridLookUpEditBaseViewInfo),
new ButtonEditPainter(),
true,
image
)
);
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Instance
//////////////////////////////////////////////////////////////////////////////// Public
#region 할당하기 - Assign(item)
/// <summary>
/// 할당하기
/// </summary>
/// <param name="item">저장소 항목</param>
public override void Assign(RepositoryItem item)
{
BeginUpdate();
try
{
base.Assign(item);
CustomRepositoryItemGridLookUpEdit source = item as CustomRepositoryItemGridLookUpEdit;
if(source == null)
{
return;
}
}
finally
{
EndUpdate();
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Protected
#region 로드시 처리하기 - OnLoaded()
/// <summary>
/// 로드시 처리하기
/// </summary>
protected override void OnLoaded()
{
base.OnLoaded();
if(IsDesignMode)
{
return;
}
GridColumn idColumn = new GridColumn();
idColumn.FieldName = idColumn.Caption = "ID";
idColumn.VisibleIndex = 0;
GridColumn nameColumn = new GridColumn();
nameColumn.FieldName = nameColumn.Caption = "Name";
nameColumn.VisibleIndex = 1;
GridView gridView = View;
gridView.Columns.Clear();
gridView.Columns.Add(idColumn );
gridView.Columns.Add(nameColumn);
gridView.OptionsView.ShowGroupPanel = true;
ValueMember = "ID";
DisplayMember = "Name";
DataSource = GetDataTable();
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Protected
#region 데이터 테이블 구하기 - GetDataTable()
/// <summary>
/// 데이터 테이블 구하기
/// </summary>
/// <returns>데이터 테이블</returns>
private DataTable GetDataTable()
{
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("ID" , typeof(int )));
table.Columns.Add(new DataColumn("Name", typeof(string)));
table.Rows.Add(new object[] { 0, "A" });
table.Rows.Add(new object[] { 1, "B" });
table.Rows.Add(new object[] { 2, "C" });
return table;
}
#endregion
}
}
728x90
▶ CustomGridLookUpEdit.cs
using System.ComponentModel;
using DevExpress.XtraEditors;
namespace TestProject
{
/// <summary>
/// 커스텀 그리드 룩업 에디터
/// </summary>
public class CustomGridLookUpEdit : GridLookUpEdit
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Property
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 에디터 타입명 - EditorTypeName
/// <summary>
/// 에디터 타입명
/// </summary>
public override string EditorTypeName
{
get
{
return CustomRepositoryItemGridLookUpEdit.EditorName;
}
}
#endregion
#region 속성 - Properties
/// <summary>
/// 속성
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public new CustomRepositoryItemGridLookUpEdit Properties
{
get
{
return base.Properties as CustomRepositoryItemGridLookUpEdit;
}
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Static
#region 생성자 - CustomGridLookUpEdit()
/// <summary>
/// 생성자
/// </summary>
static CustomGridLookUpEdit()
{
CustomRepositoryItemGridLookUpEdit.Register();
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Instance
#region 생성자 - CustomGridLookUpEdit()
/// <summary>
/// 생성자
/// </summary>
public CustomGridLookUpEdit()
{
}
#endregion
}
}
300x250
▶ MainForm.cs
using DevExpress.XtraEditors;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
}
#endregion
}
}
728x90
그리드형(광고전용)