Значение по умолчанию для DependencyProperty - PullRequest
11 голосов
/ 05 мая 2011

Я пытаюсь заставить DependencyProperty работать в WPF.Я использую:

public static readonly DependencyProperty DisplayModeProperty = DependencyProperty.Register("DisplayMode", typeof (TescoFoodSummary), typeof (Orientation), new UIPropertyMetadata(Orientation.Vertical));
    /// <summary>
    /// Gets or sets the orientation.
    /// </summary>
    /// <value>The orientation.</value>
    public Orientation DisplayMode {
        get { return (Orientation)base.GetValue(DisplayModeProperty); }
        set { base.SetValue(DisplayModeProperty, value); }
    }

Когда я инициализирую окно, я получаю сообщение об ошибке: Тип значения по умолчанию не соответствует типу свойства 'DisplayMode'.Однако, если я опускаю значение по умолчанию, я получаю исключение нулевой ссылки, когда окно загружается из-за того, что DisplayModeProperty не установлен.

1 Ответ

13 голосов
/ 27 августа 2012

Публикация комментария в качестве ответа.

Согласно msdn Метод DependencyProperty.Register синтаксис выглядит так:

public static DependencyProperty Register(
    string name,
    Type propertyType,
    Type ownerType,
    PropertyMetadata typeMetadata
)

В вашем случае ownerType равен TescoFoodSummary, а propertyType равен Orientation, поэтому параметры имеют следующие позиции:

DependencyProperty.Register("DisplayMode", typeof (Orientation), typeof (TescoFoodSummary), new UIPropertyMetadata(Orientation.Vertical));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...