private void InitializeDeck(string deckName) { // Clone instead so we don't have to reset state? if (currentDeck != null) { currentDeck.Reset(); } currentDeck = deckCollection.GetDeck(deckName); this.Dispatcher.Invoke((Action)(() => { this.cardCollection.ItemsSource = currentDeck.Cards; this.deckControl.ItemsSource = new List <Deck> { currentDeck }; })); }