Dans un projet en C# (.Net 2.0), j'utilise une grille de propriétés. Ce Propertygrid affiche les objets récupérés depuis un backend PHP via SOAP. Certains objets contiennent des propriétés de chaîne où la signification d'une chaîne vide est différente de la signification d'une chaîne NULL. Un exemple d'un objet retourné par un appel SOAP pourrait être:C# Propriété Propertygrid Nullable
SomeObject {
PropertyA = "Foo"
PropertyB = "Bar"
PropertyC = Null
}
Tant que je ne « toucher » PropertyC dans PropertyGrid, la valeur de PropertyC restera nulle. Quand j'entre "foobar" comme valeur et puis efface le texte dans la grille de propriétés pour PropertyC la valeur sera égale à une chaîne vide. Tout cela me va bien; l'utilisateur devrait pouvoir "entrer" une chaîne vide. Mais je veux aussi que l'utilisateur puisse spécifier une valeur "nulle". La façon dont j'imagine ceci est que l'utilisateur peut cliquer avec le bouton droit sur la valeur de la propriété et un menu contextuel apparaîtra avec une option "Effacer la valeur" qui définirait la valeur sur Null.
Important: Je ne pas veulent utiliser une « valeur magique » comme la chaîne « Null » ou « Magix123 » pour spécifier la valeur doit être nulle. Bien sûr, le backend pourrait interpréter ces valeurs et stocker une valeur nulle réelle mais cette "solution" est, en plus d'être sale, non désirée car elle nécessiterait de changer beaucoup de code partout dans les "Magic values".
Idéalement, le PropertyGrid afficherait également une valeur nulle comme ("grisé") "" afin que l'utilisateur puisse voir la différence entre une chaîne vide et une valeur Null.
Quelqu'un a une idée sur la façon de gérer ce genre de situation? Est-ce que le PropertyGrid (.Net 2.0!) Me permet de faire ce genre de choses? Et comment devrais-je y aller alors? Aurais-je besoin de créer mon propre contrôle utilisateur dérivé d'un PropertyGrid ou le PropertyGrid a-t-il une ou plusieurs fonctions que j'ai ratées?
Vous devez vous moquer de moi. C'est simple? Jeeeeeez ... LOL Je vais vérifier et vous le faire savoir. Merci! – RobIII
Au moins en théorie, il devrait être aussi facile. Il y a beaucoup de fonctionnalité et de magie intégrées dans de nombreux contrôles. –
Hmmm, j'ai ajouté [DefaultValue (null)] à une propriété dans le fichier Reference.cs mais la commande "reset" n'est pas disponible. Peut-être que je fais quelque chose de mal ici. Je travaille dessus ... toute aide/conseils sont appréciés. Aussi; Je vais devoir trouver comment appliquer ces changements dans un autre endroit que References.cs car ce fichier sera toujours écrasé (régénéré) lors de la mise à jour de la référence web. Je suppose que les cours partiels sont la voie à suivre? – RobIII