private void ListenToCurrentRaceRun() { if (_currentRace != _dm.GetCurrentRaceRun()) { if (_notifier != null) { _notifier.CollectionChanged -= StartListChanged; _notifier.ItemChanged -= StartListItemChanged; _notifier = null; } _rslVP = null; Application.Current.Dispatcher.Invoke(() => { RaceRun raceRun = _dm.GetCurrentRaceRun(); _rslVP = new RemainingStartListViewProvider(); _rslVP.Init(raceRun.GetStartListProvider(), raceRun); _notifier = new ItemsChangedNotifier(_rslVP.GetView()); _notifier.CollectionChanged += StartListChanged; _notifier.ItemChanged += StartListItemChanged; }); _currentRace = _dm.GetCurrentRaceRun(); SendStartList(); } }
public override void Dispose() { _dm.CurrentRaceChanged -= OnCurrentRaceChanged; _notifier.CollectionChanged -= StartListChanged; _notifier.ItemChanged -= StartListItemChanged; _rslVP = null; _notifier = null; _timer = null; }
public RemainingStartListViewProvider GetRemainingStartersViewProvider(RaceRun rr, string context = null) { var slVP = GetStartlistViewProvider(rr, context); if (slVP == null) { return(null); } var rslVP = new RemainingStartListViewProvider(); rslVP.Init(slVP, rr); return(rslVP); }
private void ConnectUiToRaceRun(RaceRun raceRun) { if (raceRun != null) { _rslVP = (new ViewConfigurator(_thisRace)).GetRemainingStartersViewProvider(raceRun); dgRemainingStarters.ItemsSource = _rslVP.GetView(); UiUtilities.EnableOrDisableColumns(_thisRace, dgRemainingStarters); dgRunning.ItemsSource = raceRun.GetOnTrackList(); UiUtilities.EnableOrDisableColumns(_thisRace, dgRunning); dgFinish.ItemsSource = raceRun.GetInFinishList(); UiUtilities.EnableOrDisableColumns(_thisRace, dgFinish); lblStartList.DataContext = _rslVP.GetView(); } else { dgRemainingStarters.ItemsSource = null; dgRunning.ItemsSource = null; dgFinish.ItemsSource = null; } }