public RageCardGameMainView(IEventAggregator aggregator, TestOptions test, RageCardGameVMData model ) { _aggregator = aggregator; _model = model; _aggregator.Subscribe(this); _deckGPile = new BaseDeckXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>(); _discardGPile = new BasePileXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>(); _score = new ScoreBoardXF(); _playerHandWPF = new BaseHandXF <RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF>(); _trick1 = new SeveralPlayersTrickXF <EnumColor, RageCardGameCardInformation, RageCardGameGraphicsCP, CardGraphicsXF, RageCardGamePlayerItem>(); StackLayout mainStack = new StackLayout(); ParentSingleUIContainer?restoreP = null; if (test.SaveOption == EnumTestSaveCategory.RestoreOnly) { restoreP = new ParentSingleUIContainer(nameof(RageCardGameMainViewModel.RestoreScreen)); } StackLayout otherStack = new StackLayout(); otherStack.Orientation = StackOrientation.Horizontal; otherStack.Children.Add(_deckGPile); otherStack.Children.Add(_discardGPile); // can reposition or not even have as well. mainStack.Children.Add(otherStack); PopulateScores(_score); SimpleLabelGridXF firstInfo = new SimpleLabelGridXF(); firstInfo.AddRow("Turn", nameof(RageCardGameMainViewModel.NormalTurn)); firstInfo.AddRow("Status", nameof(RageCardGameMainViewModel.Status)); firstInfo.AddRow("Trump", nameof(RageCardGameMainViewModel.TrumpSuit)); firstInfo.AddRow("Lead", nameof(RageCardGameMainViewModel.Lead)); mainStack.Children.Add(_trick1); mainStack.Children.Add(_playerHandWPF); mainStack.Children.Add(firstInfo.GetContent); mainStack.Children.Add(_score); _deckGPile.Margin = new Thickness(5, 5, 5, 5); _discardGPile.Margin = new Thickness(5, 5, 5, 5); if (restoreP != null) { mainStack.Children.Add(restoreP); //default add to grid but does not have to. } GamePackageViewModelBinder.ManuelElements.Clear(); //often times i have to add manually. RageCardGameSaveInfo save = cons !.Resolve <RageCardGameSaveInfo>(); //usually needs this part for multiplayer games. _score !.LoadLists(save.PlayerList); _playerHandWPF !.LoadList(_model.PlayerHand1 !, ""); // i think _trick1 !.Init(_model.TrickArea1 !, _model.TrickArea1, ""); //just in case the load won't work properly this time on xamarin forms. Content = mainStack; }
Task IUIView.TryActivateAsync() { GamePackageViewModelBinder.ManuelElements.Clear(); //often times i have to add manually. RageCardGameSaveInfo save = cons !.Resolve <RageCardGameSaveInfo>(); //usually needs this part for multiplayer games. _score !.LoadLists(save.PlayerList); _playerHandWPF !.LoadList(_model.PlayerHand1 !, ""); // i think _trick1 !.Init(_model.TrickArea1 !, _model.TrickArea1, ""); return(Task.CompletedTask); }