1

上下文:
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

4

1 回答 1

0

您想将列表框绑定到可观察集合吗?如果是这样,请这样做:

Listname.ItemsSource = tmpClass.Collection;

这实际上应该有效,至少这就是我进行数据绑定的方式

于 2013-05-25T00:19:58.600 回答