0

引数として渡されたオブジェクトは、Navigationイベントのみを受け取ります。クリックイベントで受け取りたいのですが、パラメータの代わりに何を使うべきですか?

void App1::MainPage::btuN_Click(Platform::Object^ sender,     Windows::UI::Xaml::RoutedEventArgs^ e)
{
Variables^ data = (Variables^)e->OriginalSource;
if (data->sNotf!=nullptr)
    Frame->Navigate(TypeName(BlankPage3::typeid), data);
}

OriginalSourceを使用しましたが、機能しませんでした。誰か助けてくれませんか?Advに感謝します

4

2 に答える 2

1

ページに移動するときに、ナビゲーション イベントのパラメーターが重要な場合は、後でアクセスできるように、それらをページ オブジェクト内に格納する必要があります。

//MainPage needs to have a private Variables^ named Info
void MainPage::OnNavigatedTo(NavigationEventArgs^ e)
{
  if(e->Parameter)
    this->Info = dynamic_cast<Variables^>(e->Parameter);
}

次に、クリック ハンドラー内からその変数にアクセスします。

void MainPage::btuN_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
  if(this->Info)
    if (this->Info->sNotf!=nullptr)
      Frame->Navigate(TypeName(BlankPage3::typeid), Info);
}
于 2013-03-19T20:02:11.520 に答える
1

OriginalSourceプロパティには、イベントを発生させたオブジェクトへの参照が含まれています。ナビゲーション パラメータとは関係ありません。

ボタンクリックイベントでどのパラメーターにアクセスしたいのか正確にはわかりません。ナビゲーション イベントでページに渡されたものは? この場合、上記のナビゲーション イベントを処理し、そこでパラメーターを取得して、ページのプライベート フィールドに格納する必要があります。クリック イベントでは、プライベート フィールドからそれらを読み戻し、転送することができます。

関連する注意事項: ナビゲーション パラメーターとして非基本型を渡すことはお勧めできません。これを行う必要がある場合は、オブジェクト ID を渡して、共通リポジトリからページ内の値を読み取ることをお勧めします。

于 2013-03-17T06:09:16.030 に答える