Frage

Zuerst habe ich eine Listbox und setzen Sie DataSource auf eine MyObjectCollection

MyObjectCollection implementiert das Interface IListSource wich enthält MyObject ' s

MyObject hat die Methode

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

Die Listbox zeigt nun "test" für jedes element in der MyObjectCollection.

Aber wenn ich die IListSource interface MyObject, zu.Die Listbox zeigt eine leere Zeichenfolge.Wie zu beheben, dass in der "MyObject-Klasse".Ein workaround ist, um es zu beheben, im Listenfeld Format-Ereignis, aber als alle GUI-Elemente hat, um diese Problemumgehung zu implementieren :/

War es hilfreich?

Lösung

In der Regel, sollten die Dinge entweder Listen, oder sollte ein Unternehmen für verbindlich.Wenn es eine Liste (IList oder IListSource) dann, viel von der Daten-binding-API davon aus, dass Sie wirklich wollen (für einfach-Bindung Szenarien, d.h.eine Zeile) die erste Element aus der Unterliste.

Würde ich einfach ändern, so dass MyObject nicht Umsetzung IListSource, aber kapselt es, vielleicht setzen Sie es über einen Items Eigenschaft.Man könnte auch schauen, ob eine benutzerdefinierte TypeConverter funktionieren würde (ich werde später untersuchen...)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top