DotvvmChildEventCallback
Details
src/Web/ViewModels/DefaultViewModel.cs 76(+69 -7)
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
}
src/Web/Views/Default.dothtml 30(+26 -4)
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>