为什么我不能在Windows Phone 7.8及以下版本中绑定ObservableCollection <t>?</t>

时间:2013-05-24 07:19:42

标签: c# silverlight windows-phone-7 windows-phone-8 observablecollection

上下文
适用于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”,它显示:

  

Count = 0;

WP7中的


运行代码后,在立即窗口中输入“tmpClass”,它显示:

  

{System.Collections.ObjectModel.ObservableCollection}       base {System.Collections.ObjectModel.Collection}:{System.Collections.ObjectModel.ObservableCollection}       _busy:false       CollectionChanged:null       PropertyChanged:null

1 个答案:

答案 0 :(得分:0)

是否要将列表框绑定到可观察集合?如果是这样,那就这样做:

Listname.ItemsSource = tmpClass.Collection;

这实际上应该有效,至少就像我进行数据绑定一样