public PlayerView() { this.Players = new ObservableCollection <PlayerViewModel>(); this.InitializeComponent(); this.DataContext = this; this.Loaded += delegate { if (!this.registered) { for (DependencyObject obj = this; obj != null; obj = LogicalTreeHelper.GetParent(obj)) { MainWindow window = obj as MainWindow; if (window != null) { window.RegisterForSeasonChanges( delegate(FanastySeason season) { var players = new PlayerLoader(season); this.Dispatcher.BeginInvoke( new Action <IEnumerable <PlayerViewModel> >(this.Refresh), players.GetViewModels()); }); this.registered = true; break; } } } }; }