DataSource와 IlistSource 및 Tostring ()
-
05-07-2019 - |
문제
먼저 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
효과가있을 것입니다 (조사 할게요 ...)
제휴하지 않습니다 StackOverflow