0
我正試圖綁定從MenuItem繼承到我的窗口的依賴項屬性的控件上的依賴項屬性。我已經在這兩個屬性的get和sets上設置了斷點,並且我從不會看到被調用的窗口的屬性。窗口屬性是源,控件屬性是目標。未訪問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設置爲Self,並將AncestoryType設置爲FindAncestor到窗口。
我明白你的意思是關於正在使用的GetValue方法,而不是屬性。該問題仍然存在,因爲當我調用GetValue時,該屬性看起來沒有被設置,所以它返回Nothing。 是的,我確實有一個窗口中的屬性,我忘了把它包含在我原來的問題中。我現在就添加它。 – Lance 2014-11-24 14:18:29
我不確定這個問題,那麼綁定是不正確的,除非你已經正確設置了windows datacontext。你需要RelativeSource = {RelativeSource AncestorType = {x:Type Window}},但你說你已經試過了。 – ndonohoe 2014-11-24 14:28:36
我認爲你只是修復它。我之前在RelativeSource的嘗試是:RelativeSource = {RelativeSource AncestorType = Window}添加{X:Type Window}似乎已解決了這個問題。 – Lance 2014-11-24 14:32:46