public ChoiceItemViewModel(Dispatcher dispatcher, IChoiceItem item) : base(dispatcher) { if (item == null) throw new ArgumentNullException("item"); this.item = item; if (item is IChoice) { choice = item as IChoice; var child = new ChoiceItemViewModel(dispatcher, choice.Question); child.Parent = this; children.Add(child); } else if (item is IQuestion) { question = item as IQuestion; foreach (var answer in question.Answers) { var child = new ChoiceItemViewModel(dispatcher, answer); child.Parent = this; children.Add(child); } } else if (item is IAnswer) { answer = item as IAnswer; if (answer.FollowUp != null) { var child = new ChoiceItemViewModel(dispatcher, answer.FollowUp); child.Parent = this; children.Add(child); } if (answer.ItemType is IPlayerCard) { var playerCard = answer.GetObject<IPlayerCard>(); card = playerCard; playerCardViewModel = new PlayerCardViewModel(dispatcher, playerCard); cardVisibility = Visibility.Visible; } else if (answer.ItemType is IEncounterCard) { var encounterCard = answer.GetObject<IEncounterCard>(); card = encounterCard; encounterCardViewModel = new EncounterCardViewModel(dispatcher, encounterCard); cardVisibility = Visibility.Visible; } else if (answer.ItemType is ICardInPlay) { var cardInPlay = answer.GetObject<ICardInPlay>(); card = cardInPlay.BaseCard; if (cardInPlay.BaseCard is IPlayerCard) { } } } }
public ChoiceItemViewModel(Dispatcher dispatcher, IChoiceItem item) : base(dispatcher) { if (item == null) { throw new ArgumentNullException("item"); } this.item = item; if (item is IChoice) { choice = item as IChoice; var child = new ChoiceItemViewModel(dispatcher, choice.Question); child.Parent = this; children.Add(child); } else if (item is IQuestion) { question = item as IQuestion; foreach (var answer in question.Answers) { var child = new ChoiceItemViewModel(dispatcher, answer); child.Parent = this; children.Add(child); } } else if (item is IAnswer) { answer = item as IAnswer; if (answer.FollowUp != null) { var child = new ChoiceItemViewModel(dispatcher, answer.FollowUp); child.Parent = this; children.Add(child); } if (answer.ItemType is IPlayerCard) { var playerCard = answer.GetObject <IPlayerCard>(); card = playerCard; playerCardViewModel = new PlayerCardViewModel(dispatcher, playerCard); cardVisibility = Visibility.Visible; } else if (answer.ItemType is IEncounterCard) { var encounterCard = answer.GetObject <IEncounterCard>(); card = encounterCard; encounterCardViewModel = new EncounterCardViewModel(dispatcher, encounterCard); cardVisibility = Visibility.Visible; } else if (answer.ItemType is ICardInPlay) { var cardInPlay = answer.GetObject <ICardInPlay>(); card = cardInPlay.BaseCard; if (cardInPlay.BaseCard is IPlayerCard) { } } } }