tombstoning - saving and loadign from IsolateStorage

This commit is contained in:
2011-03-25 13:47:13 +02:00
parent f069ee7010
commit a25a7fb3fd
6 changed files with 173 additions and 38 deletions
@@ -171,7 +171,31 @@ namespace MyFriendsAround.WP7.ViewModel
}
public string MyName { get; set; }
/// <summary>
/// The <see cref="MyName" /> property's name.
/// </summary>
public const string MyNamePropertyName = "MyName";
private string _myName = "Guest";
/// <summary>
/// Gets the MyName property.
/// </summary>
public string MyName
{
get { return _myName; }
set
{
if (_myName == value)
{
return;
}
var oldValue = _myName;
_myName = value;
// Update bindings, no broadcast
RaisePropertyChanged(MyNamePropertyName);
}
}
public string AppBarTextAbout {
get { return "About"; }
@@ -74,8 +74,6 @@ namespace MyFriendsAround.WP7.ViewModel
// Create run time view models
}
Container.Instance.RegisterInstance(typeof(MainViewModel), "MainViewModel");
Container.Instance.RegisterInstance(typeof(AboutViewModel), "AboutViewModel");
}
/// <summary>
@@ -85,7 +83,7 @@ namespace MyFriendsAround.WP7.ViewModel
{
get
{
MainViewModel mainViewModel = GetViewModel<MainViewModel>();
MainViewModel mainViewModel = GetViewModel<MainViewModel>("MainViewModel");
return mainViewModel;
}
}
@@ -97,7 +95,7 @@ namespace MyFriendsAround.WP7.ViewModel
{
get
{
AboutViewModel aboutViewModel = GetViewModel<AboutViewModel>();
AboutViewModel aboutViewModel = GetViewModel<AboutViewModel>("AboutViewModel");
return aboutViewModel;
}
}
@@ -108,9 +106,9 @@ namespace MyFriendsAround.WP7.ViewModel
/// </summary>
public void Cleanup()
{
MainViewModel mainViewModel = GetViewModel<MainViewModel>();
MainViewModel mainViewModel = GetViewModel<MainViewModel>("MainViewModel");
mainViewModel.Cleanup();
AboutViewModel aboutViewModel = GetViewModel<AboutViewModel>();
AboutViewModel aboutViewModel = GetViewModel<AboutViewModel>("AboutViewModel");
aboutViewModel.Cleanup();
}
@@ -118,10 +116,10 @@ namespace MyFriendsAround.WP7.ViewModel
#region Local Helpers
private T GetViewModel<T>() where T : ViewModelBase
private T GetViewModel<T>(string key) where T : ViewModelBase
{
// Create a new view model
T vm = Container.Instance.Resolve<T>();
T vm = Container.Instance.Resolve<T>(key);
//Assign the Context from PageNavigation to Context property of the ViewModelBase
vm.Context = vm.PageNav.CurrentContext;