async public override Task<LayoutAwarePage> CreateGame(GameInfomation gameInfomation, Frame targetFrame) { TradeGameData_Model.ExchangeViewType = typeof(Exchange); TradeGameData_Model.SetupGameViewType = typeof(SetupGame); TradeGameData_Model vm; var storage = new Storages.Storage<TradeGameData_Model>(GetSaveFileName(gameInfomation)); await storage.Refresh(); if (storage.Value == null) { storage.Value = new TradeGameData_Model(storage, gameInfomation); } vm = storage.Value; EventRouter.Instance.InitFrameNavigator(ref targetFrame); var navigator = vm.Navigator = targetFrame.GetFrameNavigator(); navigator.PageInitActions = new Dictionary<Type, Action<LayoutAwarePage, IDictionary<string, object>>> { { typeof (SetupGame), (p,dic)=> { var svm = new SetupGame_Model(vm); p.DefaultViewModel = svm; } }, { typeof (Exchange), (p,dic)=> { var svm = new SetupGame_Model(vm); p.DefaultViewModel = svm; } }, { typeof (ScoreBoard), (p,dic)=> { var svm = new ScoreBoard_Model(vm); p.DefaultViewModel = svm; } }, }; var rval = new DefaultTradeGame.Views.TradeGamePage() { DefaultViewModel = vm }; return rval; }
async public override Task<LayoutAwarePage> CreateGameAndNavigateTo(GameInfomation gameInfomation, Frame targetFrame) { TradeGamePage_Model vm; var storage = new Storage<TradeGameData>(GetSaveFileName(gameInfomation)); await storage.Refresh(); vm = new TradeGamePage_Model(storage, gameInfomation); EventRouter.Instance.InitFrameNavigator(ref targetFrame); var navigator = vm.Navigator = targetFrame.GetFrameNavigator(); navigator.PageInitActions = new Dictionary<Type, Action<LayoutAwarePage, IDictionary<string, object>>> { { typeof (SetupGame), (p,dic)=> { var svm = new SetupGame_Model(vm.GameData); p.DefaultViewModel = svm; } }, { typeof (Exchange), (p,dic)=> { var svm = new SetupGame_Model(vm.GameData); p.DefaultViewModel = svm; } }, { typeof (ScoreBoard), (p,dic)=> { var svm = new ScoreBoard_Model(vm.GameData); p.DefaultViewModel = svm; } }, { typeof (TradeGamePage), (p,dic)=> { p.DefaultViewModel = vm; vm.CommandOnLoadCommand.Execute(null); } }, }; await navigator.FrameNavigate(Views.ViewModels.TradeGamePage_Model.TradeGamePageViewType, vm, null); return targetFrame.Content as LayoutAwarePage; }