Question

Salutations à tous,

J'ai une liste de «types» répondant à un certain critère que j'ai obtenu par la réflexion. Chacun des types est une fonctionnalité différente que l'utilisateur choisira potentiellement au moment de l'exécution. Si j'ajoute plus de sous-classes plus tard, cette implémentation dynamique permettrait à ce que je me souvienne de mettre à jour le contrôle de l'utilisateur est l'idée ici.

La liste des types est agréable, mais ce serait bien d'afficher quelque chose de plus significatif que le nom car il est écrit en code. Par exemple, au lieu de "RacingBikeDeSigner", j'aimerais afficher "Racing Bike Designer", et peut-être même afficher d'autres propriétés associées à ce type comme "Description" afin que l'utilisateur sache ce que fait ce choix particulier.

Je suppose donc que la question est, étant donné un type, comment puis-je fournir une représentation plus significative à l'utilisateur? Puis-je peut-être ajouter un champ statique à chaque sous-classe et appeler cela à partir du type, ou pourrais-je peut-être utiliser un convertisseur de type d'une manière ou d'une autre?

Le contrôle de l'utilisateur (Listbox, ComboBox, etc.) est lié à la valeur de retour ci-dessous, mais il n'est pas convivial:

List<string> LeftHandedUserChoices = new List<string>();
Type[] AllTypesInThisAssembly = Assembly.GetAssembly(typeof(UserChoices)).GetTypes();
foreach (Type _currentType in AllTypesInThisAssembly)
    if (_currentType.IsSubclassOf(typeof(UserChoices)))
        LeftHandedUserChoices.Add(_currentType.Name);
return LeftHandedUserChoices;

Bravo, q

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top