2016-12-07 4 views
0

Я пытаюсь переопределить значение по умолчанию на Expander для свойства IsExpanded.WPF Expander OverrideMetadata IsExpandedProperty

Мой код до сих пор, что не работает:

static MyExpander() 
{ 
    IsExpandedProperty.OverrideMetadata(typeof(MyExpander), new FrameworkPropertyMetadata(true)); 
} 

Тем не менее, свойство по-прежнему устанавливается в ложь (который я проверил так, чтобы быть уверенным):

public MyExpander() 
{ 
    System.Console.WriteLine($"IsExpanded default value is: {IsExpandedProperty.DefaultMetadata.DefaultValue}"); 
} 

EDIT: Nevermind, я просто глуп, я сделал свойство ложным в стиле ... Все отлично работает сейчас, спасибо за ответ в любом случае :)

ответ

0

Проверьте Фактическое значение вместо DefaultValue из DefaultMetadata:

public MyExpander() 
{ 
    Debug.WriteLine($"IsExpanded value: {IsExpanded}"); 
} 

В разделе Замечания по DependencyProperty.DefaultMetadata Property странице на MSDN:

метаданных по умолчанию является метаданными свойство, которое доступно для конкретного объекта или объект производного типа, где нет альтернативные метаданные были предоставлены явным регистром или вызовом OverrideMetadata .

Как следует из названия, DefaultMetadata не возвращает переопределенные метаданные.

Смежные вопросы