アプリケーション全体で使用されるオブジェクトがあり、一部の ViewModel で変更できます。にオブジェクトを登録するにはどうすればよいAppBootstrapper
ですか?
次のコードを検討してください。
AppBootstrapper
protected override void Configure()
{
this.container = new PhoneContainer(RootFrame);
this.container.RegisterPhoneServices();
var myObject = this.CreateDefaultObject();
this.container.Instance(myObject);
// ... etc.
}
private MyObject CreateDefaultObject()
{
// blah blah blah
return new MyObject {
Status = "New"
};
}
ViewModel1
public ViewModel1(MyObject myObject, INavigationService navigationService)
{
this.myObject = myObject;
this.navigationService = navigationService;
}
public string Status
{
get { return this.myObject.Status; }
}
ViewModel2
public ViewModel2(MyObject myObject, INavigationService navigationService)
{
this.myObject = myObject;
this.navigationService = navigationService;
}
public ModifyIt()
{
this.myObject = new MyObject {
Status = "Modified"
};
this.navigationService.GoBack();
}
シナリオは次のとおりです。
- アプリケーションが実行され、View1 に移動します。
TextBlock
- ユーザーは View2 に移動し、アクション
ModifyIt
(Button
クリックなど)を実行します。 - アプリケーションは View1 に戻り、今度は表示される値が「変更済み」である必要があります。
どんな助けにも感謝します。