private void RefreshAvailableDecks()
 {
     if (AvailableDecks.Count == 0)
     {
         for (var i = 1; i <= 9; i++)
         {
             var key   = i.ToString(CultureInfo.InvariantCulture);
             var model = new AvailableDecksModel
             {
                 Slot           = key,
                 AvailableDecks =
                     new BindableCollection <DeckModel>(Decks.Where(x => x.Key == key || String.IsNullOrEmpty(x.Key))),
                 SelectedDeck = Decks.FirstOrDefault(x => x.Key == key)
             };
             model.PropertyChanged += AvailableDecksModel_OnPropertyChanged;
             AvailableDecks.Add(model);
         }
         NotifyOfPropertyChange(() => AvailableDecks);
     }
     else
     {
         for (var i = 1; i <= 9; i++)
         {
             var key = i.ToString(CultureInfo.InvariantCulture);
             AvailableDecks[i - 1].AvailableDecks =
                 new BindableCollection <DeckModel>(Decks.Where(x => x.Key == key || String.IsNullOrEmpty(x.Key)));
             AvailableDecks[i - 1].PropertyChanged -= AvailableDecksModel_OnPropertyChanged;
             AvailableDecks[i - 1].SelectedDeck     = Decks.FirstOrDefault(x => x.Key == key);
             AvailableDecks[i - 1].PropertyChanged += AvailableDecksModel_OnPropertyChanged;
         }
         NotifyOfPropertyChange(() => AvailableDecks);
     }
 }
        private void OnSelectDeck(object parameter)
        {
            // Run some type checks before we start using it.
            int index;
            var selectedDeck = parameter as string;

            if (Int32.TryParse(selectedDeck, out index))
            {
                // Try to get the deck at this index
                var deckAtIndex = AvailableDecks.ElementAtOrDefault(index);
                if (deckAtIndex != null)
                {
                    // Found. Apply and update UI
                    CurrentDeck = deckAtIndex;
                    RaisePropertyChange("CurrentDeck");
                }
            }

            OnNew();
        }