データを渡しながら別の XAML ページに移動する文書化された方法は、データを URL パラメーターとしてシリアル化することによるようです。これは、単一のデータベース キーなどの単純なパラメーターに最適です。
NavigationService.Navigate(new Uri("/ViewContact.xaml?contactid=" + cid, UriKind.Relative));
ただし、検索クエリなど、かなり複雑なデータ構造を渡したい場合はどうすればよいでしょうか。このクエリには、キーワード、さまざまなフィルター、アイテムの配列などが含まれる場合があります。URL パラメーターを使用してこの種のデータを表現するのはかなり難しいでしょう。
質問: 重要なパラメーターを渡して、別のページに移動するための推奨される手法は何ですか?
1 つのアイデアは、最初に移動先のページの静的プロパティとしてデータまたはクエリを設定することです。
Query q = new Query();
// Set various parameters
ViewContact.SearchQuery = q;
NavigationService.Navigate(new Uri("/ViewContact.xaml?contactid=", UriKind.Relative));
次に、ViewContact が読み込まれると、その静的プロパティがチェックされ、データがメモリに読み込まれます。
このアプローチに何か問題がありますか、または推奨される別の方法はありますか?