Zitat von
Elvis:
Jetzt wäre natürlich noch schön zu wissen was da drin steht.
Ist RoleList auch wirklich von List<T> oder BindingList<T> abgeleitet, bzw implementiert es generische Interfaces?
RoleList leitet von ProjectBaseList ab und die ist von System.Collections.CollectionBase abgeleitet.
Es ist interessanterweise die gleiche Liste, die im anderen Form einwandfrei an der Grid hängt und da alles tut was sie soll.
Zitat von
Elvis:
Das Erben von einer generischen Liste (welche BCL-Liste auch immer) sollte das Problem beseitigen.
Wie gesagt: Es ist im Herzen eine CollectionBase, also daran liegts schonmal nicht.
Zitat von
Elvis:
Einfach DataSource besetzen und DisplayMember. DataMember macht hier keinen Sinn.
Wenn du ToString() überschrieben hast, brauchst du nichtmal DisplayMember.
Nein, ToString() hab ich auf dem Item (das ist mit einem Zwischenschritt von Object abgleitet) nicht überschrieben. Macht an der Stelle auch keinen Sinn, das ist ne Fachklasse, die braucht sowas ned
ABER: Wenn ich nur:
Code:
// Get available roles for Selection list:
_rightsRoleList = new RoleList();
_rightsRoleList.Init();
// put roles to source
_srcRightsRoleList.DataSource = _rightsRoleList;
Int32 Testcount = _srcRightsRoleList.List.Count;
// put source to ListBox
lstBoxRightsRoles.DisplayMember = "Name";
lstBoxRightsRoles.DataSource = _rightsRoleList;
Mache hilft das auch nicht.
Zitat von
Elvis:
FTR: DataMember benutzt man, wenn die Klasse der DataSource selbst wieder Eigenschaften besitzt, die ein Container ist.
Auf die Art kannst du einfach Master-Detail-Beziehungen abbilden, aber hier ist das natürlich absoluter Käse. (Oder erkennt SWF hier das IEnumerable von String und gibt dir die einzelnen Chars?
Nachtrag2: Gerade getestet -> Ja!
(gleich'n screenie angehängt
)
In dem Fall hätte ich Konsequenterweise bei dem oben geposteten Code nicht die Rollennamen in der Liste haben müssen sondern die einzelnen Chars des ersten Rollennamen. Aber auch das war nicht der Fall: Die Box ist komplett leer.