質問

これは簡単な解決策のように思えますが、これを理解するのに多くの時間を無駄にしています。おそらくアプリケーションの設計が間違っている可能性があります (実際にそうなる可能性があります)。より良い解決策があれば助けてください。

私は、Outlook によく似たエンタープライズ レベルの WPF アプリケーションを設計しています。 Ribbon ツールバーの代わりに。ユーザーがフレームをクリックしたときにフレームにロードされるさまざまなモジュールがたくさんあります。 RibbonButton. 。彼のリボンはすべてのモジュールで共有されることに注意してください。

そこで、リボンとフレームが付いたシェルを用意しました。ユーザーがリボン ボタンをクリックすると、適切なモジュール (ユーザー コントロール) がフレームにロードされます。すべてが良いです。ただし、(別のリボンボタンをクリックして) 別のモジュールに移動し、元のモジュールをクリックすると、 RibbonButton, 現在、同じモジュールの 2 つのインスタンスが開いています...しかし、フレーム内に表示されるのは 1 つだけです...他のモジュールはフレームのスタック内にあります。

そこで私の質問は、別のモジュールに移動するときにユーザーコントロールを閉じるようにフレームに指示するにはどうすればよいですか?設定してみました JournalEntry.KeepAlive="False", 、しかしそれでもうまくいきませんでした。何かご意見は?実際に投稿できるコードはそれほど多くありませんが、お役に立てれば投稿させていただきます。

役に立ちましたか?

解決

前のエントリに「戻る」つもりがない場合は、次のように使用できます。 NavigationService.RemoveBackEntry() 移動するたびに履歴を消去します。それを行う最も簡単な方法は、フレームの ナビゲートされたイベント:

frame.Navigated += frame_Navigated;

void frame_Navigated(object sender, NavigationEventArgs e)
{
    frame.NavigationService.RemoveBackEntry();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top