【发布时间】:2015-01-22 05:03:03
【问题描述】:
我正在尝试将继承自 MenuItem 的控件上的依赖属性绑定到我的窗口的依赖属性。我已经在两个属性的 get 和 sets 上设置了断点,但我从来没有看到被调用的窗口的属性 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。
【问题讨论】:
标签: .net wpf xaml binding dependency-properties