Я пытаюсь связать свойство зависимости на элементе управления, который наследует от MenuItem свойство зависимости моего окна. Я поставил точки останова на get и наборы обоих свойств, и я никогда не вижу, чтобы свойство get вызываемого окна. Свойство window - это источник, а свойство управления - цель.Свойство привязки свойств объекта WPF не доступно
Свойство управления выглядит следующим образом:
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 для себя, а также для FindAncestor с AncestoryType set к окну.
Я вижу, что вы имеете в виду, когда используется метод GetValue, а не свойство. Проблема все еще существует там, где свойство не отображается, потому что, когда я вызываю GetValue, он возвращает Nothing. Да, у меня есть свойство в окне, я забыл включить его в свой первоначальный вопрос. Я добавлю это сейчас. – Lance
Я не уверен в этом вопросе, привязка неверна, если вы правильно не установили datacontext windows. Вам понадобится RelativeSource = {RelativeSource AncestorType = {x: Type Window}}, но вы сказали, что уже пытались это сделать. – ndonohoe
Я думаю, вы только что исправили это. Моя предыдущая попытка RelativeSource была: RelativeSource = {RelativeSource AncestorType = Window} Добавление окна {X: Type}, похоже, устранило проблему. – Lance