728x90
반응형
오늘도 제목 뽑기가 힘드네요. 카테고리를 나눠야 할까요?
각설하고 오늘은 심플합니다.
Devexpress에서 CustomDiplayText, Popup이라는 이벤트를 만들어서 가지고 있는 아이템을 수정해서 보여주는 이벤트는 알고 있을 겁니다만, 오늘은 이거 전혀 사용하지 않습니다.
CustomDisplayText는 선택된 아이템을 콤보박스내에 표시하는 용도이고,
Popup은 Popup버튼을 눌러서 나오는 Listbox의 내용을 바꿔줄 때 사용하는데 아래 방법을 이용하면 심플하게
콤보박스 내에 단일 정보가 아닌 다중정보를 담는 클래스 오브젝트를 넣어서 사용할 수 있습니다.
자 클래스를 설계해보죠.
// 클래스 요소는 상황에 맞게 바꿔서 사용하시면 됩니다.
public class SampleItem
{
public string Key { get; set; }
public string Value { get; set; }
public string Description { get; set; }
public object Tag { get; set; }
// 생성자
public SampleItem(string _key, string _value, string _desc, object _tag)
{
this.Key = _key;
this.Value = _value;
this.Description = _desc;
this.Tag = _tag;
}
// 생성자 두번째 - 빈 아이템도 넣을 수 있으니까요.
public SampleItem()
{
this.Key = string.empty;
this.Value = string.empty;
this.Description = string.empty;
this.Tag = null;
}
// 오늘의 하이라이트!!
public override string ToString()
{
return string.format("[{0}] {1}", this.Value, this.Description);
}
}
ToString() 오버라이드 함수만 추가하면 DisplayText 및 Popup시 리스트 박스에 나오는 값을 ToString()로 해결할 수 있습니다.
사용법:
// ~~~
int idx = 1;
foreach (string Item in Items)
{
SampleItem item = new SampleItem(idx.toString(), Item, "BlahBlah");
cboSample.Properties.Items.Add(item);
idx++;
}
// ~~~
오늘은 여기까지...
반응형
'개발 > C# + DevExpress' 카테고리의 다른 글
[2021.10] XtraGrid 특정 Row의 컬럼 값 편집 여부를 설정하는 방법 (0) | 2021.10.22 |
---|---|
[2021.06] DevExpress XtraMessagebox 및 버튼의 폰트수정(v2) (0) | 2021.06.07 |
[2021.06] Devexpress Grid 등의 팝업메뉴 한글로 바꿀 수 없을까? (0) | 2021.06.04 |
[2021.04] DevExpress 스킨목록 가져오고 적용하기 (0) | 2021.04.22 |
[2021.04] C# + DevExpress Grid에서 문자로 된 숫자 정렬하기 (0) | 2021.04.13 |