본문 바로가기
C#/DevExpress

DevExpress / Winform Gridview 생성 후 컬럼 생성 / 행 추가 / 행 삭제 하기.

by HyunS_ 2019. 5. 8.

Gridview 생성 후 컬럼 생성 / 행 추가 / 행 삭제 하기 입니다.

 

MemberModel.cs 입니다.

/// <summary>
/// 멤버 모델 클래스 입니다.
/// </summary>
public class MemberModel
{
	#region ID

	/// <summary>
	/// 아이디를 가져오거나 설정합니다.
	/// </summary>
	public string ID{ get; set; }

	#endregion
	#region Name

	/// <summary>
	/// 이름을 가져오거나 설정합니다.
	/// </summary>
	public string Name{ get; set; }

	#endregion
	#region Email

	/// <summary>
	/// 이메일을 가져오거나 설정합니다.
	/// </summary>
	public string Email{ get; set; }

	#endregion
}

 

MainForm.cs 입니다.

/// <summary>
/// 소스 리스트 입니다.
/// </summary>
private List<MemberModel> sourceList;

#region Constructor()

/// <summary>
/// 생성자 입니다.
/// </summary>
public MainForm()
{
	InitializeComponent();

	SetGridControlData(this.sourceList);
    
	this.gridView.Columns.Clear();

	this.gridView.Columns.Add(GetGridColumn("idColumn"     , "ID"     , "아이디"     , true));
	this.gridView.Columns.Add(GetGridColumn("nameColumn"   , "Name"   , "이름"      , true));
	this.gridView.Columns.Add(GetGridColumn("emailColumn"  , "Email"  , "이메일"     , true));
	
	this.addButton.Click     += addButton_Click;
	this.deleteButton.Click  += deleteButton_Click;
	
}

#endregion

#region addButton_Click(sender, e)

/// <summary>
/// 추가 버튼 클릭시 동작합니다.
/// </summary>
/// <param name="sender">이벤트 발생자 입니다.</param>
/// <param name="e">이벤트 인자 입니다.</param>
private void addButton_Click(object sender, EventArgs e)
{
	this.sourceList.Add(GetNewRow());
	
	SetGridControlData(this.sourceList);
}

#endregion

#region deleteButton_Click(sender, e)

/// <summary>
/// 삭제 버튼 클릭시 동작합니다.
/// </summary>
/// <param name="sender">이벤트 발생자 입니다.</param>
/// <param name="e">이벤트 인자 입니다.</param>
private void deleteButton_Click(object sender, EventArgs e)
{
	MemberModel focusItem = this.gridView.GetFocusedRow() as MemberModel;

	try
	{
		this.sourceList.Remove(focusItem);

		this.gridView.RefreshData();
	}
	catch (Exception exception)
	{
		MessageBox.Show(this, "삭제 도중 문제가 발생하였습니다.", exception.ToString());
	}
}

#endregion

#region GetGridColumn(name, fieldName, caption, visible)

/// <summary>
/// 그리드 컬럼을 생성합니다.
/// </summary>
/// <param name="name">이름 입니다.</param>
/// <param name="fieldName">필드 이름 입니다.</param>
/// <param name="caption">제목 입니다.</param>
/// <param name="visible">출력 여부 입니다.</param>
/// <returns>그리드 컬럼 입니다.</returns>
private GridColumn GetGridColumn(string name, string fieldName, string caption, bool visible)
{ 
	GridColumn column = new GridColumn();

	column.Name      = name;
	column.FieldName = fieldName;
	column.Caption   = caption;
	column.Visible   = visible;

	return column;
}

#endregion

#region SetGridControlData(sourceList)

/// <summary>
/// 컨트롤 데이터를 설정합니다.
/// </summary>
/// <param name="sourceList">소스 리스트 입니다.</param>
private void SetGridControlData(List<MemberModel> sourceList)
{
	this.gridControl.DataSource = sourceList;

	this.gridControl.RefreshDataSource();
	
}

#endregion

#region GetNewRow()

/// <summary>
/// 새로운 행을 추가합니다.
/// </summary>
/// <returns>멤버 모델 입니다.</returns>
private MemberModel GetNewRow()
{ 
	MemberModel member = new MemberModel();

	member.ID = "";
	member.Name = "";
	member.Email = "";
	
	return member;
}

#endregion

 

 

728x90

댓글