上下文:
Visual Studio 2012 Express for Windows Phone (Update 2) 项目构建基于官方模板 Panorama (Windows Phone OS 7.1)
问题:
所有代码在 WP8 中都可以正常工作,但是在 WP7.8 和 WP7.1 中,我似乎无法将 ViewModel 绑定到视图。当我调查它时。我发现了问题。
代码:
在我的视图代码隐藏中,我使用以下代码将视图模型绑定到视图:
public MainPage()
{
InitializeComponent();
this.DataContext = new pageViewModel();
}
我发现在WP7.8及以下版本绑定ListBox的属性异常,其值为
无法评估表达式
但在 WP8 中,没关系。
该属性的相关代码在 ViewModel 中如下:
ObservableCollection<MyClass> tmpClass = new ObservableCollection<MyClass>();
tmpClass = JsonConvert.DeserializeObject<ObservableCollection<MyClass>>(callbackjsonstring);
this.propertyA = tmpClass;
如何解决?
多一点挖掘:
我在 tmpClass 的初始化处放了一个断点。我在 WP7 和 WP8 中发现了 2 个不同的结果,我认为这是问题所在:
在 WP8 中:
运行代码后,在即时窗口中键入“tmpClass”,它显示:
计数 = 0;
在 WP7 中:
运行代码后,在即时窗口中输入“tmpClass”,它显示:
{System.Collections.ObjectModel.ObservableCollection} 基础 {System.Collections.ObjectModel.Collection}:{System.Collections.ObjectModel.ObservableCollection} _busy:假 CollectionChanged:null PropertyChanged:null