IListSourceおよびToString()with DataSource
-
05-07-2019 - |
質問
最初にリストボックスがあり、DataSourceをMyObjectCollectionに設定します
MyObjectCollectionは、MyObjectを含むIListSourceインターフェイスを実装します
MyObjectにはメソッドがあります
public override string ToString()
{
return "test";
}
リストボックスに「テスト」と表示されるようになりましたMyObjectCollectionの各要素に対して。
ただし、IListSourceインターフェイスをMyObjectに適用する場合も同様です。リストボックスには空の文字列が表示されます。 " MyObject"でそれを修正する方法クラス。 回避策はListbox Formatイベントで修正することですが、すべてのGUI要素はこの回避策を実装する必要があります:/
解決
一般に、物はいずれかがリストであるか、またはがバインディングのエンティティである必要があります。リスト( IList
または IListSource
)である場合、データバインディングAPIの多くは、実際に(単純なバインディングシナリオの場合、つまり1行)<サブリストのem>最初アイテム。
MyObject
が IListSource を実装しないように単純に変更しますが、カプセル化します。 Items
プロパティを介して公開します。また、カスタム TypeConverter
が機能するかどうかを調べることもできます(調査します...)
所属していません StackOverflow