Я сижу с кодом MVVM, и все это работает независимо друг от друга, но я собираюсь соединить его вместе.
Проблема в том, что я не могу вызвать GameViewModel, что связано с различными параметрами в конструкторах.
Кажется, это простая проблема, но я не смог найти решение.
Игрок в казино (имена и монеты должны быть предоставлены игроку в блэкджек)
имя строки;
int chips;
public Player(string n, int c)
{
name = n;
chips = c;
}
Игрок в Блэкджек
public BlackJackPlayer(string name, int money, BitmapImage backSide, int currentImage)
{
Images = new List<Image>();
Name = name;
Money = money;
ImageBack = backSide;
CurrentImage = currentImage;
}
GameViewModel.cs (
Думаю, проблема в этом классе, потому что я хочу положить имена игроков и монеты в блэкджек-плеер)
public GameViewModel(IView view, string name)
{
View = view;
Random = new Random();
Commands = new Commands(this);
BlackJackPlayer = new BlackJackPlayer(name, 1000, ImagesHelper.CreateImage("player"), 2);
BlackJackPlayer.CreateSplitDeck();
view.AddSplitDeckCards(BlackJackPlayer);
Computer = new BlackJackPlayer("Computer", 1000, ImagesHelper.CreateImage("computer"), 2);
view.DisplayMoney(BlackJackPlayer, Computer);
view.DisplayName(name);
CardImages = ImagesHelper.GetBlackJackCards();
view.AddCards(BlackJackPlayer, Computer);
BlackJackPlayer.ShowBackside();
Computer.ShowBackside();
BetAmount = "100";
}
** BlackJackScreen.Xaml.cs (здесь я пытаюсь получить доступ к GameViewModel, но, конечно, это невозможно, поскольку есть разные параметры -> p - тип игрока, а я должен быть строкой) -> * *
public BlackjackScreen(Player p)
{
InitializeComponent();
_player = p;
defaultButtons = new[] { Hit, Stand, Split };
splitButtons = new[] { HitLeft, HitRight, StandLeft, StandRight };
DataContext = new GameViewModel(this, p);
}
MainWindow.xaml.cs (
Это способ, которым я вызываю различные окна, которые я использую, который отлично работает, за исключением blackJackScreen)
public void SetContent(Player p, int contentId)
{
switch (contentId)
{
case 0: ContentHolder.Content = new GamePicker(p); break;
case 1: ContentHolder.Content = new BlackjackScreen(p); break;
//case 2: ContentHolder.Content = new SlotsScreen(p); break;
//case 3: ContentHolder.Content = new VideoPokerScreen(p); break;
//case 4: ContentHolder.Content = new RouletteScreen(p); break;
}
}
Я искренне надеюсь, что вы дадите пример кода того, как это можно решить.
Заранее спасибо