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: false CollectionChanged: null PropertyChanged: null

4

1 に答える 1