DotvvmChildEventCallback

Details

diff --git a/src/Web/ViewModels/DefaultViewModel.cs b/src/Web/ViewModels/DefaultViewModel.cs
index 16cc237..ad2b807 100644
--- a/src/Web/ViewModels/DefaultViewModel.cs
+++ b/src/Web/ViewModels/DefaultViewModel.cs
@@ -5,6 +5,9 @@ namespace Web.ViewModels
 
     public class DefaultViewModel : SiteViewModel
     {
+        public FirstViewModel First { get; set; }
+        public SecondViewModel Second { get; set; }
+        public ThirdViewModel Third { get; set; }
         public WizardNavigationViewModel Wizard { get; set; }
 
         public DefaultViewModel()
@@ -13,13 +16,7 @@ namespace Web.ViewModels
             {
                 "First",
                 "Second",
-                "Third",
-                "Fourth",
-                "Fifth",
-                "Sixth",
-                "Seventh",
-                "Eighth",
-                "Ninth",
+                "Third"
             }, 1);
             Wizard.ShowNavigation();
         }
@@ -27,6 +24,33 @@ namespace Web.ViewModels
         public void OnNextClick()
         {
             Wizard.OnNextClick();
+
+            if (Wizard.Step == 1)
+            {
+                if (First == null)  // TODO resolve with IOC
+                    First = new FirstViewModel();
+
+                if (!First.IsInitialized)
+                    First.Initialize();
+            }
+
+            if (Wizard.Step == 2)
+            {
+                if (Second == null)  // TODO resolve with IOC
+                    Second = new SecondViewModel();
+
+                if (!Second.IsInitialized)
+                    Second.Initialize();
+            }
+
+            if (Wizard.Step == 3)
+            {
+                if (Third == null)  // TODO resolve with IOC
+                    Third = new ThirdViewModel();
+
+                if (!Third.IsInitialized)
+                    Third.Initialize();
+            }
         }
 
         public void OnPreviousClick()
@@ -35,6 +59,43 @@ namespace Web.ViewModels
         }
     }
 
+    #region First
+    public class FirstViewModel
+    {
+        public bool IsInitialized { get; set; }
+
+        public void Initialize()
+        {
+            IsInitialized = true;
+        }
+    }
+    #endregion
+
+    #region Second
+    public class SecondViewModel
+    {
+        public bool IsInitialized { get; set; }
+
+        public void Initialize()
+        {
+            IsInitialized = true;
+        }
+    }
+    #endregion
+
+    #region Third
+    public class ThirdViewModel
+    {
+        public bool IsInitialized { get; set; }
+
+        public void Initialize()
+        {
+            IsInitialized = true;
+        }
+    }
+    #endregion
+
+    #region Wizard Navigation
     public class WizardNavigationViewModel
     {
         public int MinimumStep { get; set; }
@@ -104,4 +165,5 @@ namespace Web.ViewModels
         }
         #endregion
     }
+    #endregion
 }
diff --git a/src/Web/Views/Default.dothtml b/src/Web/Views/Default.dothtml
index bacb2be..0065e16 100644
--- a/src/Web/Views/Default.dothtml
+++ b/src/Web/Views/Default.dothtml
@@ -11,9 +11,21 @@
                     </bs:Button>
                 </div>
                 <div class="col-md-8">
-                    Step {{value: Step}} out of {{value: Total}}.
-                    <bs:ProgressBar Color="Info" VisualStyle="AnimatedStriped" Value="{value: Percentage}" />
-                    {{value: Percentage.ToString("#.##")}}% Complete
+                    <div class="row">
+                        <div class="col-md-3">
+                            Step {{value: Step}} out of {{value: Total}}.
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-md-12">
+                            <bs:ProgressBar Color="Primary" VisualStyle="AnimatedStriped" Value="{value: Percentage}" />
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-md-3">
+                            {{value: Percentage.ToString("#.##")}}% Complete
+                        </div>
+                    </div>
                 </div>
                 <div class="col-md-2">
                     <bs:Button ButtonTagName="button" Click="{command: _root.OnNextClick()}" Enabled="{value: NextButtonEnabled}" IncludeInPage="{value: NextButtonVisible}" IsSubmitButton="true" Type="Primary">
@@ -25,7 +37,17 @@
         <div class="container mt-3">
             <div class="row">
                 <div class="offset-md-2 col-md-8">
-                    <h4 class="lead">{{value: Title}}</h4>
+                    <h5 class="text-muted">{{value: Title}}</h5>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="container">
+        <div class="row">
+            <div class="col-md-12">
+                <div IncludeInPage="{value: Wizard.Step == 1}">
+                    <div DataContext="{value: First}">
+                    </div>
                 </div>
             </div>
         </div>