Visual Studio 2010 редактор времени разработки - PullRequest
5 голосов
/ 08 апреля 2011

Я работаю над пользовательским элементом управления для WPF и Silverlight.У этого элемента управления есть свойство коллекции сложного типа, которое является абстрактным, например:

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>()));

Моя проблема заключается в том, что я не могу добавить новые элементы в это свойство в конструкторе Visual Studio 2010, поскольку он не знает ничегопроизводные типы MyBase.

Есть ли способ зарегистрировать эти типы в конструкторе?Редактор отлично работает с существующими элементами и может удалять и изменять их.Изображение для иллюстрации:

enter image description here

1 Ответ

5 голосов
/ 08 апреля 2011

Вам необходимо украсить свойство коллекции с помощью NewItemTypesAttribute . Вы можете сделать это непосредственно в своем классе, но в WPF / Silverlight они обычно определяются в отдельной сборке проекта. Здесь есть хорошее прохождение .

...