上下文
适用于Windows Phone的Visual Studio 2012 Express(更新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中发现了两个不同的结果,我认为这是问题所在:
WP8中的 :
运行代码后,在立即窗口中键入“tmpClass”,它显示:
WP7中的Count = 0;
:
运行代码后,在立即窗口中输入“tmpClass”,它显示:
{System.Collections.ObjectModel.ObservableCollection} base {System.Collections.ObjectModel.Collection}:{System.Collections.ObjectModel.ObservableCollection} _busy:false CollectionChanged:null PropertyChanged:null
答案 0 :(得分:0)
是否要将列表框绑定到可观察集合?如果是这样,那就这样做:
Listname.ItemsSource = tmpClass.Collection;
这实际上应该有效,至少就像我进行数据绑定一样