문제

먼저 ListBox가 있고 DataSource를 MyObjectCollection으로 설정합니다.

myObjectCollection은 인터페이스 ILISTSORCE가 MyObject를 포함하는 인터페이스를 구현합니다

myObject에는 방법이 있습니다

public override string ToString()
{
    return "test";
}

ListBox는 이제 myObjectCollection의 각 요소에 대해 "테스트"를 표시합니다.

그러나 iListSource 인터페이스를 MyObject에도 적용하면. 목록 상자에 빈 문자열이 표시됩니다. "myObject"클래스에서이를 해결하는 방법. 해결 방법은 ListBox 형식 이벤트에서이를 수정하는 것이지만 모든 GUI 요소 보다이 해결 방법을 구현해야합니다.

도움이 되었습니까?

해결책

일반적으로 사물은해야합니다 어느 하나 목록, 또는 바인딩의 엔티티 여야합니다. 목록 인 경우 (IList 또는 IListSource) 그러면 많은 데이터 바인딩 API가 실제로 원하는 것으로 가정합니다 (간단한 결합 시나리오, 즉 한 행) 첫 번째 하위 목록에서 항목.

나는 단순히 그것을 바꿀 것입니다 MyObject 그렇지 않습니다 구현하다 IListSource, 하지만 캡슐화 아마도 a를 통해 노출 될 수 있습니다 Items 재산. 당신은 또한 관습 여부를 볼 수 있습니다 TypeConverter 효과가있을 것입니다 (조사 할게요 ...)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top