2010-10-25 19 views
2

J'utilise WPF PropertyGrid (http://www.codeplex.com/wpg) dans mon projet. Mais j'ai quelques problèmes avec ce composant.Récupérer des collections et inscrire la valeur sélectionnée WPF Property Grid

1) Je peux montrer mes collections IList dans un ComboBox. Mais je ne peux pas récupérer la valeur sélectionnée. Comment puis-je obtenir la valeur sélectionnée?

2) Les énumérations sont automatiquement affichées en liste déroulante, mais je ne peux pas récupérer la valeur sélectionnée comme # 1.

Pouvez-vous m'aider?

Ceci est ma propriété de collection

public class Contact { 
// Other properties 

    [TypeConverter(typeof(MyConverter))] 
     public string Cities 
     { 
      get; 
      set; 
     } 
} 

Ceci est mon convertisseur classe

class MyConverter : TypeConverter 
    { 
     public override bool 
     GetStandardValuesSupported(ITypeDescriptorContext context) 
     { 
      return true; 
     } 
     public override StandardValuesCollection 
     GetStandardValues(ITypeDescriptorContext context) 
     { 
      List<string> list = new List<string>(); 

      list.Add("Istanbul"); 
      list.Add("Ankara"); 
      list.Add("Izmir"); 

      StandardValuesCollection cols = new 
      StandardValuesCollection(list); 
      return cols; 
     } 
    } 

Quand je tournerai mon contact l'instance de la classe à la propriété instance de WPF PropertyGrid, je ne voyais pas Combox. Mais si je mets mon objet à. Net PropertyGrid je peux voir cette solution fonctionne bien.

Donc, je pense que cette PG ne supporte pas TypeConverts, alors que puis-je faire?

+0

Utilisez-vous la liaison de données ou remplissez-vous directement votre grille dans le code? –

+0

Je lie des données par mes grilles Propriété d'instance –

+0

Les utilisateurs intéressés peuvent également vérifier la solution que j'avais implémentée - http://stackoverflow.com/questions/2816555/wpf-propertygrid-adding-support-for-collections – akjoshi

Répondre

0

Le Propertygrid de WPF prend-il en charge les TypeConverseurs? La façon dont cela a été fait dans Winforms PG était que vous pouviez écrire un TypeConverter et l'ajouter comme attribut à votre propriété. Le TypeConverter pourrait alors spécifier le StandardValuesCollection. Donc dans votre objet vous avez une propriété qui prend une valeur et votre convertisseur spécifie la collection des valeurs possibles.

+0

J'ai ajouté des exemples de code à mon code, pouvez-vous jeter un coup d'œil? –

+0

J'ai vérifié maintenant et je pense qu'il ne supporte pas TypeConverters :( –