2011-05-26 59 views
3

我有一個「MainModelView」,它實現了INotifyPropertyChanged,並且有一個屬性顯示ObservableCollection<T>,名爲ExposedCollection。在我們的MainPage.xaml中,我們有一個ListBox,它的ItemsSource應該被綁定到MainModelView.ExposedCollection如何確認在XAML中綁定了哪些屬性?

MainModelView使REST調用在後臺填充ExposedCollection。當WebClient完成它的工作時,ASyncCallback調用NotifyPropertyCHanged,它檢查PropertyChanged事件是否爲空,如果沒有,則調用它。漂亮的基本東西

問題是,ListBox似乎永遠不會綁定到ExposedCollection。我在NotifyPropertyChanged的空檢查上設置了一個斷點,並且PropertyChanged上沒有任何偵聽器。

我試過實例化PhoneApplicationPage.Resources中的MainViewModel,PhoneApplicationPage.DataContextPhoneApplicationFrame.DataContext在App.xaml中。在所有情況下,PropertyChanged事件仍然爲空。我在這裏錯過了什麼?

<phone:PhoneApplicationPage.DataContext> 
    <gmvm:MainViewModel x:Name="MainViewModel" /> 
</phone:PhoneApplicationPage.DataContext> 
... 
<ListBox x:Name="MyListBox" ItemsSource="{Binding ExposedCollection}" Margin="0,20,-12,0"> 
..... 
</Listbox> 
+1

綁定錯誤顯示在Visual Studio的輸出窗口中。當您運行應用程序時,您是否看到任何綁定錯誤? – Andy 2011-05-26 22:42:31

+0

沒有錯誤,但是你的評論導致我進行了一段史詩級的調試過程,導致了代碼的黑暗角落,原來的集合引用留給了可怕的垃圾回收。如果你發佈一個答案,我會標記它。 – 2011-05-26 22:53:27

回答

1

您應該檢查Visual Studio中的輸出窗口,以查看運行您的應用程序時是否有任何綁定錯誤。

1

我不知道這是否有差別,但你嘗試過實施ExposedCollection作爲一個依賴屬性?如果你這樣做,它可能不需要實現INotifyPropertyChanged接口,並幫助綁定到列表框? Crazier的東西已經爲我工作了...

+0

還沒有探索依賴屬性,但我會在我們的里程碑之後給出一個鏡頭。感謝您的建議! – 2011-05-27 13:56:36

相關問題