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
'C# > DevExpress' 카테고리의 다른 글
DevExpress / Winform GridView 특정 컬럼에 글 입력 안되게 하기. (0) | 2019.05.08 |
---|---|
DevExpress / Winform GridView 컬럼에 콤보 박스 추가하기. (0) | 2019.05.08 |
DevExpress / Winform GridView 출력 시 빈 행 출력 안되게 하기. (0) | 2019.05.07 |
DevExpress / Winform GridControl의 DataSource에 객체를 바인딩 할 때 Column의 FieldName과 객체의 속성 값 맞추기. (0) | 2019.04.20 |
DevExpress / Winform GridView Column Header와 출력 될 행의 폰트 변경 하기. (0) | 2019.04.20 |
댓글