Свойство источника привязки свойства WPF не доступно
Я пытаюсь связать свойство зависимости в элементе управления, который наследуется от MenuItem, со свойством зависимости моего окна. Я поставил точки останова в get и множествах обоих свойств, и я никогда не вижу свойства get вызываемого окна. Свойство окна является источником, а свойство элемента управления является целью.
Свойство элемента управления выглядит следующим образом:
Public Shared StorageProperty As DependencyProperty =
DependencyProperty.Register("Storage",
GetType(IStorage),
GetType(MRUFileList),
New PropertyMetadata(Nothing))
Public Property Storage As IStorage
Get
Return DirectCast(GetValue(StorageProperty), IStorage)
End Get
Set(value As IStorage)
SetValue(StorageProperty, value)
End Set
End Property
И свойство окна:
Public Shared ReadOnly MRUStorageProperty As DependencyProperty =
DependencyProperty.Register("MRUStorage",
GetType(MRU.IStorage),
GetType(GrammarEditor),
New PropertyMetadata(Nothing))
Public Property MRUStorage As MRU.IStorage
Get
Return DirectCast(GetValue(MRUStorageProperty), MRU.IStorage)
End Get
Set(value As MRU.IStorage)
SetValue(MRUStorageProperty, value)
End Set
End Property
И наконец, XAML, определяющий привязку:
<mru:MRUFileList Name="mnuRecent"
Header="Open _Recent"
Storage="{Binding MRUStorage,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
Ранее я пытался установить для RelativeSource значение Self, а также FindAncestor с AncestoryType, установленным в Window.
1 ответ
При привязке свойства зависимостей get/set никогда не будет вызываться, поскольку привязка разрешается с использованием инфраструктуры свойств зависимости. Как вы можете видеть, все, что делает ваше свойство, это позволяет вам легко получить доступ к значению этого свойства зависимости, вызвав
GetValue(StorageProperty)
Вместо того, чтобы использовать ваше свойство, механизм привязки просто вызывает это напрямую
Изменить: есть ли в вашем окне MRUStorage в качестве свойства? Это понадобится вам, чтобы иметь возможность использовать его в качестве обязательного пути