2010-09-08 5 views
1

J'utilise une file d'attente pour une propriété et elle l'affiche en tant que collection dans la grille de propriétés. Le seul problème, c'est que je ne peux pas éditer quoi que ce soit à l'intérieur, il les montre comme des "objets" et tout est en lecture seule. Je sais que Vector2 fonctionne très bien dans une grille de propriétés car j'en ai quelques-unes seules. J'ai été googling, et j'ai trouvé quelque chose sur la création d'un ContainerEditor, mais je ne sais pas comment en faire un pour une file d'attente, car ce n'est pas une classe personnalisée. Suis-je en train de lire ceci ou de chercher les mauvaises choses?Utilisation d'une file d'attente <T> dans un PropertyGrid

Répondre

1

Vous devez écrire TypeConverter et UITypeEditor pour convertir et modifier l'objet File d'attente. Voir this et this article pour savoir comment faire. Les deux articles sont peu datés mais devraient être pertinents - si quelque chose de plus simple a été apporté avec une version ultérieure de .NET, j'en suis conscient (vous pouvez essayer de googler). Maintenant, pour que cela fonctionne, vous devez décorer la classe/le type avec des attributs qui ne sont pas possibles si vous utilisez la file d'attente. Je suggérerai que vous héritiez d'une classe factice/wrapper de la file d'attente et que vous lui appliquiez des attributs. Vous pouvez même choisir un T spécifique dans votre classe wrapper si cela a du sens (par exemple, classe MyQueue : Queue<string> { }). Changez votre type de propriété pour utiliser votre classe wrapper.