2010-04-22 2 views
0

나는 가지고있는 "제스처"객체 목록에 대한 모든 이름을 가진 목록 상자가 있습니다.ListBox 항목을 목록에있는 항목과 어떻게 연결해야합니까?

ListBox 항목을 두 번 클릭하면 연결된 제스추어 인스턴스로 무언가를 할 수 있습니다. C#에서 ListBox 항목을 클래스 클래스의 인스턴스와 연결하는 가장 좋은 방법은 무엇입니까?

저는 WPF를 사용하고 있습니다.

+2

winform? webform? wpf? –

+0

@Marc, WPF 죄송합니다. – Siracuse

답변

1

는 제가 질문을 이해 여부를 잘 모르겠지만, 일반적으로 에 가장 좋은 방법은 단순히 ListBox에 인스턴스 자체를 배치하는 것입니다 "클래스의 인스턴스와 ListBox 항목을 연결". 항목에 표시되는 내용 만 처리하면됩니다. 간단한 시나리오가 있다면 클래스의 ToString() 메서드를 재정의하는 것만으로도 충분할 수 있습니다. 더 정교한 디스플레이가 필요한 경우 클래스에 DataTemplates을 작성해야합니다. 당신이 당신의 제스처 클래스에 대한 액세스 권한이없는 경우

, 당신은 그들을 위해 (A 뷰 모델 같은 것을) 래퍼 클래스를 만들고이 래퍼 클래스에 대한 제안 조정을해야한다.

또한, 당신은 당신이 안전하게 ListBox에있을 수 있습니다 모든 종류의에 대한 if -statement를 추가하지 않고 현재 선택한 항목을 캐스팅 할 수 있도록 공통 인터페이스 또는 기본 클래스을 구현 모든 수업을해야한다.

+0

ListBoxItem의 "태그"속성에 대해 어떻게 생각하십니까? 이것에 대해 제안 해 주시겠습니까? – Siracuse

+0

글쎄, 당신도 그 속성을 사용할 수 있습니다. 그러나 디버깅 목적을 제외하고는 절대로 사용하지 않습니다. * 매우 드물게 *. 나는 이것이 좋은 디자인이라고 생각하지 않습니다. 그리고 나중에 문제가 생길 수도 있습니다. 인스턴스 자체를 ListBox에 두지 않는 이유는 무엇입니까? – gehho

관련 문제