7

NavigationService.GoBack(); ビューモデルで変数を設定していますが、戻ってきたときにその変数を使用したいのですが、何も実行されていないようです。そのページを更新したくありません。

何か案は?

ここで変数を設定しています。MainPage に戻りたいと思います。

void item_click(object sender, RoutedEventArgs e)
   {

     Button b = e.OriginalSource as Button;

     App.ViewModel.bName = b.Content.ToString();
     App.ViewModel.bID = b.Name;

     this.NavigationService.GoBack();

    }

ここで私の MainPage で、変数が変更されたかどうかを確認するためにチェックを実行したいと思います。

public MainPage()

    {
      /*
i don't want to run this actually, when i'm coming back from my secondarypage.

        InitializeComponent();
        InitializeSettings();

*/

            if (App.ViewModel.bName != null)
            {
                myButton.Content = App.ViewModel.bName;
                myButton.Name = App.ViewModel.bID;
            }
    }
4

2 に答える 2

1

あいまいな質問で申し訳ありませんが、問題は解決しました。

これはメインページで必要でした。

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {

        if (App.ViewModel.bName != null)
        {
            myButton.Content = App.ViewModel.bName;
            myButton.Name = App.ViewModel.bID;
        }


        base.OnNavigatedTo(e);

    }
于 2012-12-19T09:57:01.683 に答える
1

私はすべてを理解しているわけではありませんが、「App」クラスで、ViewModel の代わりにすべてのページにグローバルな変数を宣言しようとしましたか?

たぶん追加:

使用する:

(App)App.Current 

このリンクから: Windows phone の他のページからアプリのプロパティ、グローバル変数を参照する方法

于 2012-12-19T09:18:49.470 に答える