我有一个实现了 INotifyPropertyChanged
的“MainModelView”并且有一个属性公开了 ObservableCollection<T>
称为 ExposedCollection
.在我们的 MainPage.xaml 中,我们有一个 ListBox,其 ItemsSource 应该绑定(bind)到 MainModelView.ExposedCollection
。 .
MainModelView 进行 REST 调用以填充 ExposedCollection
在后台。当WebClient
完成它的工作后,ASyncCallback 调用 NotifyPropertyCHanged
它检查 PropertyChanged 事件是否为 null,如果不是则引发它。非常基本的东西
问题是,ListBox 似乎从未绑定(bind)到 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 中的“输出”窗口,看看在运行您的应用程序时是否存在任何绑定(bind)错误。
关于silverlight - 如何确认 XAML 中绑定(bind)了哪些属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145810/