■ TreeList 클래스의 GetCustomNodeCellEdit 이벤트를 사용해 동일한 컬럼에서 다른 내장 에디터를 사용하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
using DevExpress.XtraTreeList; ... private TreeList treeList; ... this.treeList.CustomNodeCellEdit += treeList_CustomNodeCellEdit; ... #region 트리 리스트 커스텀 노드 셀 편집 처리하기 - treeList_CustomNodeCellEdit(sender, e) /// <summary> /// 트리 리스트 커스텀 노드 셀 편집 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void treeList_CustomNodeCellEdit(object sender, GetCustomNodeCellEditEventArgs e) { if(e.Column.FieldName != "Category") { object cellValue = e.Node.GetValue(0); if(cellValue != null) { switch(cellValue.ToString()) { case "Category" : e.RepositoryItem = this.repositoryItemImageComboBox; break; case "Supplier" : e.RepositoryItem = this.repositoryItemComboBox; break; case "Unit Price" : e.RepositoryItem = this.repositoryItemCalcEdit; break; case "Units in Stock" : e.RepositoryItem = this.repositoryItemSpinEdit; break; case "Discontinued" : e.RepositoryItem = this.repositoryItemCheckEdit; break; case "Last Order" : e.RepositoryItem = this.repositoryItemDateEdit; break; case "Relevance" : e.RepositoryItem = this.repositoryItemProgressBar; break; case "Phone" : e.RepositoryItem = this.repositoryItemTextEdit; break; } } } } #endregion |
※ this.repositoryItem… 설정을 생략했다.