0

私は c# と Windows 8 アプリケーションから始めています。答えは非常に単純でなければなりませんが、私にはそれができません。

私はMVVMライトモデルで働いています。

page1.xaml.cs に私のコードがあります:

        private void ResultsGridView_OnItemClick(object sender, ItemClickEventArgs e)
    {
        this.Frame.Navigate(typeof(MainPage), "test");
    }

しかし、例のように関数をオーバーライドすることはできません:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string name = e.Parameter as string;

if (!string.IsNullOrWhiteSpace(name))
{
    tb1.Text = "Hello, " + name;
}
}

MainPage.xaml.cs ではなく、MainViewModel.cs にあるためです。

では、この 2 つのフレーム間で引数を転送する方法を知っていますか?

あなたの助けに感謝します(そして私の英語を許してください).

4

1 に答える 1

0

解決策を見つけました。

私は Messenger を使用しています。これは私の page1.xaml.cs です。

        private void ResultsGridView_OnItemClick(object sender, ItemClickEventArgs e)
    {
        selectAgence = selectAgences.Last();
        Messenger.Default.Send<Agence>(selectAgence, "1");

        this.Frame.Navigate(typeof(MainPage));
    }

これは私の MainViewModel です:

            Messenger.Default.Register<Agence>(this, "1", agence => { SelectAgence = agence; });

これが一部の人に役立つことを願っています。

于 2013-05-14T07:55:19.790 に答える