2009-12-29 107 views
0

我將WPF與Entity-Framework綁定在一起。綁定不適用於導航屬性

Window.DataContext屬性設置爲報價。 此報價有一個屬性工作,我必須觸發Quote.JobReference.Load它應該從服務器加載。

<ContentControl Content="{Binding Job}" 
    ContentTemplate="{StaticResource JobTemplateSummary}"/> 

正如你可以在上面看到,我想一個ContentControl綁定到窗口的DataContext這是一個StaticResourceQuote類。

我打電話給Window.Load甚至處理程序。 我應該在其他地方打電話嗎?

+0

你爲什麼要問自己這個問題?因爲它不起作用,或者因爲你想要更好的解決方案? – 2009-12-29 22:34:52

+0

因爲它不起作用。 因此,當我找到解決方案時,我認爲它會公平地與社區共享,而不是刪除整個線程;所以人們在將來遇到類似問題時可以享受。 – Shimmy 2009-12-29 23:14:45

回答

0

問題在於導航屬性默認情況下不會調用PropertyChanged事件,所以當窗口被綁定時(在Page_Load處理程序之前),JobReference仍未加載時,我們必須在job屬性更改時顯式調用Quote.OnPropertyChanged("Job"),所以WPF UI知道刷新控件綁定。

添加以下到Quote類,這解決了這個問題:

Public Sub New() 
    AddHandler JobReference.AssociationChanged, _ 
     AddressOf Job_AssociationChanged 
End Sub 

Sub Job_AssociationChanged(sender As Object, e As CollectionChangeEventArgs) 
    OnPropertyChanged("Job") 
End Sub 
相關問題