<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>caliburnmicro Discussions Rss Feed</title><link>http://caliburnmicro.codeplex.com/Thread/List.aspx</link><description>caliburnmicro Discussions Rss Description</description><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;I want to say check ActiveItem to see if it has an object assigned (aka active).&lt;br /&gt;
&lt;/div&gt;</description><author>mvermef</author><pubDate>Sun, 19 May 2013 04:11:50 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130519041150A</guid></item><item><title>New Post: Return the value of a Property from child ViewModel to Parent ViewModel</title><link>http://caliburnmicro.codeplex.com/discussions/443944</link><description>&lt;div style="line-height: normal;"&gt;It's use and life cycle are just for selecting a single member.  The user is filling out a &amp;quot;form&amp;quot; of info where one of the fields is a Member.  This should popup when they click a button and allow them to select 1 member from the GridView.  I need that 1 Member returned and the GridView closed so they can continue filling out the form.&lt;br /&gt;
&lt;br /&gt;
Right now I am showing the GridView VM as a Dialog and passing the Parent VM in the Constructor of the Child VM(the GridView) and then setting the appropriate property from the Child VM.  See below  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the Command that the Search Button calls on my Parent VM:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;public void SearchClientsAdvanced()
        {
            TelerikWindowManager windowManager = new TelerikWindowManager();
            
            windowManager.ShowDialog(new AdvancedClientSearchViewModel(this));
        }&lt;/code&gt;&lt;/pre&gt;

This is my Child VM:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;[Export(typeof(IScreen))]
    public class AdvancedClientSearchViewModel : Screen
    {
        #region CONSTRUCTOR
        [ImportingConstructor]
        public AdvancedClientSearchViewModel(object parent)
        {
            this.Parent = parent;
            memberRepo = new MemberRepo();

            GetData();
        }
        #endregion

        #region FIELDS
        private MemberRepo memberRepo;
        #endregion

        #region PROPERTIES

        private Member selectedMember;

        public Member SelectedMember
        {
            get { return selectedMember; }
            set
            {
                selectedMember = value;
                NotifyOfPropertyChange();
            }
        }

        private IList&amp;lt;Member&amp;gt; members;

        public IList&amp;lt;Member&amp;gt; Members
        {
            get { return members; }
            set
            {
                members = value;
                NotifyOfPropertyChange();
            }
        }

        #endregion


        /// &amp;lt;summary&amp;gt;
        /// Gets the data.
        /// &amp;lt;/summary&amp;gt;
        private void GetData()
        {
            Members = memberRepo.GetAll();
        }

        public bool CanSelectMember()
        {
            return true;
        }

        public void SelectMember()
        {            
            ((CreateAuthViewModel)this.Parent).Authorization.Member = SelectedMember;

            this.TryClose();
        }
    }&lt;/code&gt;&lt;/pre&gt;

Now this actually works as expected.  When the User clicks a row in the GridView it binds it back as expected to the Parent VM and the appropriate fields.  It just seems like I'm doing it wrong.....&lt;br /&gt;
&lt;/div&gt;</description><author>RefractedPaladin</author><pubDate>Fri, 17 May 2013 14:37:12 GMT</pubDate><guid isPermaLink="false">New Post: Return the value of a Property from child ViewModel to Parent ViewModel 20130517023712P</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;I’m reading article about activation but I’m still don’t know how to do this right. I have one implementation of Conductor&amp;lt;object&amp;gt;.Collection.OneActive  in main application page and in items I have UserControls as Screens. I don’t know how to activate conductor and I’m not understand why it is not activated by default? I’m trying to invoke something like this in conductor&lt;br /&gt;
ScreenExtensions.TryActivate(this);&lt;br /&gt;
this.ActivateItem(this.Items[2]);&lt;br /&gt;
&lt;br /&gt;
But it doesn’t work. I have also tried to activate screen from currently displayed screen but this also fails ;(&lt;br /&gt;
&lt;/div&gt;</description><author>dominikjeske</author><pubDate>Fri, 17 May 2013 14:03:25 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517020325P</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;Tnx for clarification – I will think about this and read suggested article. As far as double activation I finally found what was the cause. WP8 have a bug in Panorama control (&lt;a href="http://stackoverflow.com/questions/14260701/windows-phone-8-panorama-selectionchanged-databinding" rel="nofollow"&gt;http://stackoverflow.com/questions/14260701/windows-phone-8-panorama-selectionchanged-databinding&lt;/a&gt;) and I fix this bug by adding this code to Screen class in CM sources:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;public override bool Equals(object obj)
        {
            if ((obj != null) &amp;amp;&amp;amp; (obj.GetType() == typeof(Microsoft.Phone.Controls.PanoramaItem)))
            {
                Microsoft.Phone.Controls.PanoramaItem thePanoItem = (Microsoft.Phone.Controls.PanoramaItem)obj;
 
                return base.Equals(thePanoItem.Header);
            }
            else
            {
                return base.Equals(obj);
            }
        }
 
       
        public override int GetHashCode()
        {
            return base.GetHashCode();
        }&lt;/code&gt;&lt;/pre&gt;

Unfortunately this gives me side effect with double activation ;(&lt;br /&gt;
&lt;/div&gt;</description><author>dominikjeske</author><pubDate>Fri, 17 May 2013 12:25:31 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517122531P</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;Ok, so you are on the right track using activate item.&lt;br /&gt;
&lt;br /&gt;
I can appreciate what you are looking for, a sort of universal navigation manager. You are correct in that this doesn't exist. The navigation framework was built specifically because windows phone demands a page is loaded into a frame for navigational purposes. In general Caliburn.Micro favours a ViewModel first approach were navigation becomes unimportant. The reason for this is it makes composition easier, and makes ViewModels polymorphic in their use.&lt;br /&gt;
&lt;br /&gt;
By way of example. Assume I have a shell ViewModel. It has a conductor and a property that holds a contextual ViewModel. The code below shows how I can have my active ViewModel swap out the contextual ViewModel by sending a message when it activates. The shell will check the message and if it came from the ActiveItem it knows to put it into the ContextArea, if it did not come from the ActiveItem it adds it to the Conductor itself.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;    public class ShellViewModel : 
        PropertyChangedBase,
        IHandle&amp;lt;DisplayViewModelCommand&amp;gt;

    {
        private readonly IEventAggregator _eventAggregator;

        public ShellViewModel(IEventAggregator eventAggregator)
        {
            _eventAggregator = eventAggregator;
            _eventAggregator.Subscribe(this);
        }

        public object ContextArea { get; set; }

        public IConductActiveItem ConductorArea { get; set; }

        public void Handle(DisplayViewModelCommand message)
        {
            if (message.Requestor == ConductorArea.ActiveItem)
            {
                ContextArea = message.ViewModel;

                var activatableViewModel = ContextArea as IActivate;
                if (activatableViewModel != null)
                    activatableViewModel.Activate();

                return;
            }

            ConductorArea.ActivateItem(message.ViewModel);
        }
    }&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;public class SomeViewModel : Screen
    {
        private readonly IEventAggregator _eventAggregator;

        public SomeViewModel(IEventAggregator eventAggregator)
        {
            _eventAggregator = eventAggregator;
        }

        protected override void OnActivate()
        {
            _eventAggregator.Publish(new DisplayViewModelCommand
                {
                    Requestor = this, 
                    ViewModel = new SomeOtherViewModel()
                });

            base.OnActivate();
        }
    }&lt;/code&gt;&lt;/pre&gt;

Of course this is just an example, but it gets the point across, where and when ViewModels need to activate changes from application to application.&lt;br /&gt;
&lt;br /&gt;
In terms of activation not activating. You need to ensure that your conductor itself is activated otherwise the screens will not activate, from the docs:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;If you activate an item in a conductor that is itself not active, that item won’t actually be activated until the conductor gets activated. This makes sense when you think about it, but can occasionally cause hair pulling.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
In general my approach is to have my ShellViewModel contain a single conductor as a property. I pull in the main conductor via DI, assign it to this property and then call TryActivate on it. This will allow other screens to activate, this &lt;a href="http://xaml.geek.nz/2011/10/12/conductor-activation-in-caliburn-micro.html" rel="nofollow"&gt;Link&lt;/a&gt; and the comment from Rob explains this in better detail.&lt;br /&gt;
&lt;br /&gt;
I am not sure why your activation is called twice. Perhaps if I could see your ViewModel were activate is located and the places you are calling it I may be able to work out what is wrong.&lt;br /&gt;
&lt;/div&gt;</description><author>McDonnellDean</author><pubDate>Fri, 17 May 2013 11:39:19 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517113919A</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;I have conductor with couple screens (Page with panorama control), beside this I will have other subpages in application. &lt;br /&gt;
When I’m in main page and call navigationService.UriFor&amp;lt;StoreViewModel&amp;gt;().Navigate();&lt;br /&gt;
than it works when StoreViewModel is other page but when it is just another item in panorama control it fails. I know that for this I can simply activate item of panorama control but I’m thinking about something universal – call navigate on any viewmodel. Other more complicated situation will be when StoreViewModel will be item of other panorama on other page – navigation should load this page and navigate me to specified item inside panorama.&lt;br /&gt;
Are You understand me now? Maybe it is available now but I’m doing something wrong.&lt;br /&gt;
&lt;/div&gt;</description><author>dominikjeske</author><pubDate>Fri, 17 May 2013 09:12:08 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517091208A</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;If you mean MSDN style documentation, no, we do not have anything like that, however I would think our documentation is pretty comprehensive.&lt;br /&gt;
&lt;br /&gt;
I'm struggling to understand what you are looking for we support plenty of activation options for ViewModels, for &amp;quot;Page&amp;quot; or screen level you have the NavigationService (or WindowManager in WPF/SL) you can use conductors which maintain a collection of items plus an active item, finally we allow you two swap out ViewModel properties by using content controls to make &amp;quot;Templates&amp;quot;&lt;br /&gt;
&lt;br /&gt;
We have a few samples in the source repository that show all these things fitting together.&lt;br /&gt;
&lt;br /&gt;
Perhaps you can give me a quick run down of how you are laying out your screens and navigation and I could respond with how caliburn.micro would handle these situations?&lt;br /&gt;
&lt;/div&gt;</description><author>McDonnellDean</author><pubDate>Fri, 17 May 2013 08:51:47 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517085147A</guid></item><item><title>New Post: Bindings Not Working with Custom Content Control</title><link>http://caliburnmicro.codeplex.com/discussions/432271</link><description>&lt;div style="line-height: normal;"&gt;Hello!&lt;br /&gt;
&lt;br /&gt;
There is not much more to explain. The above shown code is part of the OnStartup - method of my AppBootStrapper - class. The class AdornedControl is my Custom Content control. The first lambda statement&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(p) =&amp;gt;
            {
                bool result = p == typeof(AdornedControl.AdornedControl);
                return result;
            }&lt;/code&gt;&lt;/pre&gt;

is executed every time by Caliburn.Micro when it binds a VM to a V for every control of the V. If this statement returns 'true' the next lambda statement will be executed.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;(p) =&amp;gt;
            {
                var result = new List&amp;lt;DependencyObject&amp;gt;();

                var adornerControl = p as AdornedControl.AdornedControl;
                if (adornerControl != null)
                {
                    result.Add(adornerControl.AdornerContent);
                }
                return result;
            }&lt;/code&gt;&lt;/pre&gt;

This statement returns all child controls of the Content Control. You should modify this to reflect your implementation of your Content Control.&lt;br /&gt;
&lt;br /&gt;
BR&lt;br /&gt;
&lt;br /&gt;
Rufus&lt;br /&gt;
&lt;/div&gt;</description><author>RufusJWB</author><pubDate>Fri, 17 May 2013 08:10:14 GMT</pubDate><guid isPermaLink="false">New Post: Bindings Not Working with Custom Content Control 20130517081014A</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;I have read all documentation but CM have only articles and there is no full documentation of the library and I was wondering if in some way I can navigate to any ViewModel I want regardless how it is implemented (screen, conductor etc.)&lt;br /&gt;
&lt;/div&gt;</description><author>dominikjeske</author><pubDate>Fri, 17 May 2013 06:45:45 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130517064545A</guid></item><item><title>New Post: A little help with the bootstrapper please (VB)</title><link>http://caliburnmicro.codeplex.com/discussions/443538</link><description>&lt;div style="line-height: normal;"&gt;Well as I didn't how MEF work (In a naive attempt on my part) to simplify this problem and get the startup of my app working, I try to avoid MEF by the usage of SimpleInjector. Now I realize I have no clue of what I'm supposed to do or why, so I ask you about what I should search on google to understand this and hopefully get my app working and learn some new things.&lt;br /&gt;
&lt;/div&gt;</description><author>The_Chaoz</author><pubDate>Thu, 16 May 2013 23:51:26 GMT</pubDate><guid isPermaLink="false">New Post: A little help with the bootstrapper please (VB) 20130516115126P</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;No,&lt;br /&gt;
&lt;br /&gt;
I think it is helpful to remember that ViewModel's are not always pages or screens. As you start to decompose your app you will see that a ViewModel can also be a Conductor and manage a list of sub ViewModels. Have a look &lt;a href="https://caliburnmicro.codeplex.com/wikipage?title=Screens%2c%20Conductors%20and%20Composition&amp;amp;referringTitle=Documentation" rel="nofollow"&gt;Screens, Conductors and Composition&lt;/a&gt; it discusses the type of composition you need.&lt;br /&gt;
&lt;/div&gt;</description><author>McDonnellDean</author><pubDate>Thu, 16 May 2013 21:55:14 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130516095514P</guid></item><item><title>New Post: Bindings Not Working with Custom Content Control</title><link>http://caliburnmicro.codeplex.com/discussions/432271</link><description>&lt;div style="line-height: normal;"&gt;Hello Rufus, can you explain a bit more how you implemented the AddChildResolver&lt;br /&gt;
&lt;br /&gt;
Thank you good sir&lt;br /&gt;
&lt;/div&gt;</description><author>oscar_agreda</author><pubDate>Thu, 16 May 2013 21:15:27 GMT</pubDate><guid isPermaLink="false">New Post: Bindings Not Working with Custom Content Control 20130516091527P</guid></item><item><title>New Post: Return the value of a Property from child ViewModel to Parent ViewModel</title><link>http://caliburnmicro.codeplex.com/discussions/443944</link><description>&lt;div style="line-height: normal;"&gt;i use the following code to fire up the parent datagrid&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;      public void OpenPhysicianWindowCommand()
      {
           if (CurrentDocument != null)
           {
          dynamic settings = new ExpandoObject();
          settings.WindowStartupLocation = WindowStartupLocation.CenterScreen;
           IoC.Get&amp;lt;IWindowManager&amp;gt;().ShowDialog(IoC.Get&amp;lt;MaintenanceDocumentPhysicianParentDataGridViewModel&amp;gt;(), null, settings);
           }
      }
      
       public void Handle(IParentPhysicianEventArgs message)
       {
           if (message != null)
           {
           CurrentPhysician = message.Physician;
           }
       }&lt;/code&gt;&lt;/pre&gt;

then on the Datagrid that opens up, &lt;br /&gt;
after a selection is made&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;        public void Grid_OnMouseUp(MouseButtonEventArgs result)
        {
            if (CurrentPhysician != null)
            {
                _eventAggregator.Publish(new ParentPhysicianEventArgs { Physician = CurrentPhysician });
                TryClose();
            }
        }&lt;/code&gt;&lt;/pre&gt;

in that way the two viewmdeols talk to eachother via the event agregator&lt;br /&gt;
&lt;/div&gt;</description><author>oscar_agreda</author><pubDate>Thu, 16 May 2013 21:07:22 GMT</pubDate><guid isPermaLink="false">New Post: Return the value of a Property from child ViewModel to Parent ViewModel 20130516090722P</guid></item><item><title>New Post: Return the value of a Property from child ViewModel to Parent ViewModel</title><link>http://caliburnmicro.codeplex.com/discussions/443944</link><description>&lt;div style="line-height: normal;"&gt;You don't really indicate the method you use to open the secondary window or it's life cycle. &lt;br /&gt;
&lt;br /&gt;
 For example, do you create an instance of the MemberSearchViewModel and use the window manager ShowDIalog() to open it within CreateServiceViewModel and then only need the SelectedMember property when the window closes?  If so, you should simply be able to examine the SelectedMember property from the instance you created. &lt;br /&gt;
&lt;br /&gt;
Do you open the MemberSearchViewModel window and need to keep reacting to changes in SelectedMember?  If so, you could open it with window manager ShowWindow() which won't block and then use the Event Aggregator to publish an event from the MemberSearchViewModel when selection changes and subscribe to it from CreateServiceViewModel to handle it. &lt;a href="https://caliburnmicro.codeplex.com/wikipage?title=The%20Event%20Aggregator&amp;amp;referringTitle=Documentation" rel="nofollow"&gt;https://caliburnmicro.codeplex.com/wikipage?title=The%20Event%20Aggregator&amp;referringTitle=Documentation&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In the case of example 2, you could also simply wire up a handler to the PropertyChanged event of the MemberSearchViewModel and examine the property name and handle accordingly.  You'd have to be sure to fire PropertyChanged in the setter of SelectedMember.&lt;br /&gt;
&lt;/div&gt;</description><author>ScottHarris</author><pubDate>Thu, 16 May 2013 19:56:31 GMT</pubDate><guid isPermaLink="false">New Post: Return the value of a Property from child ViewModel to Parent ViewModel 20130516075631P</guid></item><item><title>New Post: How to Display Messages at Application Startup</title><link>http://caliburnmicro.codeplex.com/discussions/443931</link><description>&lt;div style="line-height: normal;"&gt;Thanks, that got me on the right track.  I determined there are two ways to handle this.&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
Leave Application.Current.ShutDownMode as/is and change it on the fly in my Shell view model if I'm doing a function that will need to NOT close the application when a dialog is dismissed.  Then be sure to flip it back when the function is done.  Messy, but if your app doesn't have a &amp;quot;main&amp;quot; window that you can say &amp;quot;when this closes the application life cycle is done&amp;quot;, it works well.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
Set Application.Current.ShutDownMode to OnExplicitShutdown in App.xaml.  Override OnDeactivate(bool close) in the Shell view model and call Application.Shutdown() is &amp;quot;close&amp;quot; == true.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
I opted for #2 in my case, as the Shell view model really is the central shell, when it closes, you have no more application.&lt;br /&gt;
&lt;/div&gt;</description><author>ScottHarris</author><pubDate>Thu, 16 May 2013 19:50:28 GMT</pubDate><guid isPermaLink="false">New Post: How to Display Messages at Application Startup 20130516075028P</guid></item><item><title>New Post: Return the value of a Property from child ViewModel to Parent ViewModel</title><link>http://caliburnmicro.codeplex.com/discussions/443944</link><description>&lt;div style="line-height: normal;"&gt;In my WPF MVVM app, using Caliburn.Micro, I have a ViewModel, CreateServiceViewModel that, on a button click, opens a GridView in a seperate window for the User to chose a Row from.&lt;br /&gt;
&lt;br /&gt;
I created another ViewModel for this, MemberSearchViewModel which has two properties:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;    private Member selectedMember;

    public Member SelectedMember
    {
        get { return selectedMember; }
        set { selectedMember = value; }
    }

    private IList&amp;lt;Member&amp;gt; members;

    public IList&amp;lt;Member&amp;gt; Members
    {
        get { return members; }
        set { members = value; }
    }&lt;/code&gt;&lt;/pre&gt;

How do I get that SelectedMember value back to the calling ViewModel? That ViewModel has a property of Service.SelectedMember.&lt;br /&gt;
&lt;/div&gt;</description><author>RefractedPaladin</author><pubDate>Thu, 16 May 2013 17:47:22 GMT</pubDate><guid isPermaLink="false">New Post: Return the value of a Property from child ViewModel to Parent ViewModel 20130516054722P</guid></item><item><title>New Post: How to Display Messages at Application Startup</title><link>http://caliburnmicro.codeplex.com/discussions/443931</link><description>&lt;div style="line-height: normal;"&gt;Try changing the application shutdown mode to explicit. Otherwise the application is shutdown if the las window is closed.&lt;br /&gt;
&lt;/div&gt;</description><author>BladeWise</author><pubDate>Thu, 16 May 2013 16:26:52 GMT</pubDate><guid isPermaLink="false">New Post: How to Display Messages at Application Startup 20130516042652P</guid></item><item><title>New Post: Navigate to another screen on WP8?</title><link>http://caliburnmicro.codeplex.com/discussions/443932</link><description>&lt;div style="line-height: normal;"&gt;Can I use navigationService.UriFor to navigate to another screen in panorama control - navigation is rather for pages but I would like it to be transparent and navigate to any viewmodel I put in navigationService. Is this impelmenten in some way?&lt;br /&gt;
&lt;/div&gt;</description><author>dominikjeske</author><pubDate>Thu, 16 May 2013 16:11:20 GMT</pubDate><guid isPermaLink="false">New Post: Navigate to another screen on WP8? 20130516041120P</guid></item><item><title>New Post: How to Display Messages at Application Startup</title><link>http://caliburnmicro.codeplex.com/discussions/443931</link><description>&lt;div style="line-height: normal;"&gt;Hi,&lt;br /&gt;
&lt;br /&gt;
I am trying to port an application to CM in order to really get my head around CM usage.  So far, things are going pretty good and I am extremely impressed / pleased with CM.  I have run into a situation, and I am not sure how to handle it.&lt;br /&gt;
&lt;br /&gt;
My application does several checks when it loads to determine if it can in fact run (can I connect to the web service? Is the user valid? Is the user running an acceptable version?) and if anything fails, displays a message to the user why it can't run and shuts down. So I have (with all cruft removed) a ShellViewModel and in the VM's constructor, I check these things.&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;public ShellViewModel()
{
    if (!CanLogIn())
    {
        // display message (using my own singleton window manager)
        WindowManager.Default.OpenDialog(new DialogMessageViewModel{ Message = &amp;quot;Can't open!&amp;quot; });

        // would normally call this, but for some reason with CM, not required
        //Application.Current.Shutdown();
    }
}&lt;/code&gt;&lt;/pre&gt;

This works well, it displays my message before the main window is displayed.  However, a side effect that I can't figure out, is that after the window manager displays the DialogMessageViewModal, the user clicks &amp;quot;OK&amp;quot;, even though I have the Application.Current.Shutdown() commented out, the application still shuts down rather than carrying on and displaying the ShellViewModel / ShellView.&lt;br /&gt;
&lt;br /&gt;
This is actually my desired behavior most of the time, however, not always:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
In the case of an invalid version, I need to give the user the option to check for updates (via another DialogMessageVIewModel display.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
The application also checks for available updates and if the version they are running is acceptable, but there is an update available, I present them with a &amp;quot;Update now?&amp;quot; dialog.  If they click NO, that's fine, they can still carry on using the application.&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
So my questions are:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;
Why does displaying a secondary viewmodel with the window manager in the constructor of my shell viewmodel cause the application to exit when the secondary viewmodel is closed?&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;
What is a good procedure to display these startup messages with my current intent?&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
My Bootstrapper has a bunch of stuff in it, but I also get the same results if I comment out everything and go with the most basic bootstrapper possible.&lt;br /&gt;
&lt;br /&gt;
Thanks!&lt;br /&gt;
Scott&lt;br /&gt;
&lt;/div&gt;</description><author>ScottHarris</author><pubDate>Thu, 16 May 2013 15:53:02 GMT</pubDate><guid isPermaLink="false">New Post: How to Display Messages at Application Startup 20130516035302P</guid></item><item><title>New Post: caliburn.micro not showing dialog after application install</title><link>http://caliburnmicro.codeplex.com/discussions/443643</link><description>&lt;div style="line-height: normal;"&gt;Hi Jonnie,&lt;br /&gt;
&lt;br /&gt;
I have responded on SO. I will keep my responses to that query so I don't have to manage the same question in two places.&lt;br /&gt;
&lt;br /&gt;
Thanks&lt;br /&gt;
&lt;br /&gt;
Dean&lt;br /&gt;
&lt;/div&gt;</description><author>McDonnellDean</author><pubDate>Thu, 16 May 2013 09:26:59 GMT</pubDate><guid isPermaLink="false">New Post: caliburn.micro not showing dialog after application install 20130516092659A</guid></item></channel></rss>