What is the difference between DisplayRootView and DisplayRootViewFor?

Topics: Framework Services, Getting Started, UI Architecture
Jan 1, 2014 at 7:46 PM
I've got a test app I'm using to learn C.M. Navagation from one screen to another only works if I use DisplayRootView as opposed to DisplayRootViewFor in my OnLaunched code. I would have thought the two should be equivalent. Here is my OnLaunched code:
        protected override void OnLaunched(LaunchActivatedEventArgs args)
        {
            Initialize();

#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif
            var resumed = false;

            if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
            {
                resumed = navigationService.ResumeState();
            }

            if (!resumed)
                DisplayRootView<HomeCMView>();
        }
Here is how I do the navigation in my HomeCMView:
            _nav.DisplayViewModelFor<AddCMViewModel>();
If I replace DisplayRootView with DisplayRootViewFor (and change the object to be HomeCMViewModel), however, then the DisplayViewModelFor doesn't seem to do anything. I've got logging on and looking at the debug output there are no errors:
[Caliburn.Micro.ViewModelBinder] INFO: Binding Convention Applied: Element Title.
[Caliburn.Micro.ViewModelBinder] INFO: Binding Convention Applied: Element Abstract.
[Caliburn.Micro.Screen] INFO: Activating ViewModels.ViewModels.AddCMViewModel.
The debugging log looks identical to my eye (at least this part) when I use DisplayRootView.

I'm using C.M straight from CodePlex, checked out yesterday, and built on my machine. Is this a bug, or is there a subtly that I'm missing in what these guys mean?

Many thanks!