2010-11-28 15 views
1

実行時にDataContextを別のビューモデルに変更する方法を教えてください。WP7 Silverlight - 実行時にDataContextを変更する

public PivotPage1() 
    { 
     InitializeComponent(); 
     DataContext = App.TeamDocViewModel; 
    } 

    private void Button_Click(object sender, EventArgs e) 
    { 
     DataContext = App.TaskViewModel; 
    } 

ヒント:私はクリックイベントを実行した後に 今データは、変更されませんか?

+1

まず、あなたは誤植があると思います.App.TaskViewModeはApp.TaskViewModelでなければなりません。 2番目:コードが機能するはずです。 xamlファイルのバインドに問題があるかもしれません。ここに投稿すると、nieになります。 (おそらく、あなたは "User.Name"のようなサブジェクトにバインドし、あなたのモデルにはINotifyPropertyChangedを実装しないかもしれません) –

+0

それはうまく構築され、エラーはありません。それはまた、最初のビューモデルを置くもかなりいいです!しかし、私がDataContextを変更しようとすると、データは変更されませんが、表示されている古いモデルからのデータも表示されます。 私は間違ってここに書きました、今更新しました。 – sv88erik

+0

DataContext = App.TaskViewModelを変更するとどうなりますか。 〜へDataContext = null; ?)Xamlは面白いです。 –

答えて

1

まず、あなたは誤植があると思います.App.TaskViewModeはApp.TaskViewModelでなければなりません。 2番目:コードが機能するはずです。 xamlファイルのバインドに問題があるかもしれません。ここに投稿すると、nieになります。 (おそらく "User.Name"のようなサブジェクトにバインドし、モデルにINotifyPropertyChangedを実装しないでください)

DataContext = App.TaskViewModelを変更するとどうなりますか? 〜へDataContext = null; ?)Xamlは面白いです。

0

作成したコードは問題ありません。それはTaskViewModeが何で、どのように動作するかによって異なります。

デフォルトのピボットプロジェクトテンプレートのMainViewModelに基づいていると仮定します。アイテムコレクションにアイテムを追加するにはLoadData()と呼んでいますか?

関連する問題