コード例 #1
0
        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();
            }
        }
コード例 #2
0
        public override void Dispose()
        {
            _dm.CurrentRaceChanged -= OnCurrentRaceChanged;

            _notifier.CollectionChanged -= StartListChanged;
            _notifier.ItemChanged       -= StartListItemChanged;
            _rslVP    = null;
            _notifier = null;
            _timer    = null;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
            }
        }