我有一個「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.DataContext
和PhoneApplicationFrame.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>
綁定錯誤顯示在Visual Studio的輸出窗口中。當您運行應用程序時,您是否看到任何綁定錯誤? – Andy 2011-05-26 22:42:31
沒有錯誤,但是你的評論導致我進行了一段史詩級的調試過程,導致了代碼的黑暗角落,原來的集合引用留給了可怕的垃圾回收。如果你發佈一個答案,我會標記它。 – 2011-05-26 22:53:27