2011-04-08 2 views
5

Je travaille sur un contrôle personnalisé pour WPF et Silverlight. Ce contrôle a une propriété de collection d'un type complexe qui est abstrait, comme par exemple:Éditeur de collection de temps de conception Visual Studio 2010

public Collection<MyBase> Configuration 
    { 
     get { return (Collection<MyBase>)GetValue(ConfigurationProperty); } 
     set { SetValue(ConfigurationProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for Configuration This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty ConfigurationProperty = 
     DependencyProperty.Register("Configuration", typeof(Collection<MyBase>), typeof(MyControl), new PropertyMetadata(new ObservableCollection<MyBase>())); 

Mon problème est que je ne peux pas ajouter de nouveaux éléments à cette propriété dans le concepteur de Visual Studio 2010, car il ne marche pas connaître tous les types dérivés de MyBase.

Y at-il un moyen d'enregistrer ces types avec le concepteur? L'éditeur fonctionne correctement avec les éléments existants et peut les supprimer et les modifier. Une image pour illustrer:

enter image description here

Répondre

5

Vous auriez besoin pour décorer votre propriété de collection avec le NewItemTypesAttribute. Vous pouvez le faire directement dans votre classe, mais dans WPF/Silverlight, ils sont généralement définis dans un ensemble de conception distinct. Il y a une bonne marche à travers de ce here.

Questions connexes