Catel フレームワークが大好きです。モダンな UI はかなり見栄えがします。しかし、それらを連携させようとしているときに問題に直面しました。
2 つの catels usercontrolsHome
とmuiSecond
プロジェクトを追加しました。問題は、Home
からSecond
実行への移行HomeViewModel
が 3 回作成されたときです。
この動作は、次のコードによって引き起こされますTransitioningContentControl
private void StartTransition(object oldContent, object newContent)
{
// both presenters must be available, otherwise a transition is useless.
if (CurrentContentPresentationSite != null && PreviousContentPresentationSite != null) {
CurrentContentPresentationSite.Content = newContent;
PreviousContentPresentationSite.Content = oldContent;
// and start a new transition
if (!IsTransitioning || RestartTransitionOnContentChange) {
IsTransitioning = true;
VisualStateManager.GoToState(this, NormalState, false);
VisualStateManager.GoToState(this, Transition, true);
}
}
}
いくつかの行にコメントすると:
private void StartTransition(object oldContent, object newContent)
{
// both presenters must be available, otherwise a transition is useless.
if (CurrentContentPresentationSite != null && PreviousContentPresentationSite != null) {
CurrentContentPresentationSite.Content = newContent;
//PreviousContentPresentationSite.Content = oldContent;
// and start a new transition
if (!IsTransitioning || RestartTransitionOnContentChange) {
IsTransitioning = true;
//VisualStateManager.GoToState(this, NormalState, false);
//VisualStateManager.GoToState(this, Transition, true);
}
}
}
この場合、同じトランジションで 1 回作成されますが、コントロールからのナビゲーションを実行中HomeViewModel
に作成したくありません。どうすればこれを達成できますか?HomeViewModel
Home