1

ユーザーコントロールにナビゲーションサービスを渡したいです。私のアプリケーション側で

<myControl:Test  NavigationService="{Binding NavigationService}"/>/>

私のUsercontrol CS側で

 public NavigationService NavigationService { get; set; }

しかし、それは機能していないようで、ロードするとすぐにアプリケーションがクラッシュします。

4

1 に答える 1

1

それは本当に厳しいです... わかりました、あなたはこれについて言及していませんが、UserControlから他のページ/ ucへの移動の問題を解決しようとしていると思います(本当ですか?)。

いくつかの編集:

  1. まず、 NavigationSevice を使用するためにクラスのオブジェクトは必要ありません。
  2. 次に、NavigationService は通常、ページで使用されます。

本当にUserControl で使用たい場合は、ページのインスタンスをコントロールに転送する必要があります。しかし、私の経験では、通常、これは必要ありません。私はむしろこのようにすることをお勧めします:

UserControl には、タップ/クリック イベントを含むコントロールが確実に含まれます。ユーザーコントロールクラスにロジックを記述する必要はありません。ユーザー コントロールをページに追加するときは、そこで宣言する必要があります。お気に入り:

someUserControl.buttonNavigate.MouseLeftButtonUp += new MouseButtonEventHandler(buttonNavigate_Click);

そして、ナビサービスを利用することができます。

NavigationService.Navigate(new Uri(...));

それが最も簡単な解決策です。それが役に立てば幸い。

他にもありますが、これで問題が解決することを願っています。

于 2013-02-05T10:47:32.747 に答える