我有一个“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