示例#1
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;
            }
        }
        private void displayView(ViewProvider viewProvider)
        {
            clearDataGrid();

            _viewProvider = viewProvider;

            if (_viewProvider == null)
            {
                return;
            }

            if (!(_viewProvider is StartListViewProvider))
            {
                dgView.Columns.Add(createColumnPosition("Position", "Position", false));
            }

            dgView.Columns.Add(createColumn("StartNumber", "Participant.StartNumber", "StNr"));
            dgView.Columns.Add(createColumn("Name", "Participant.Name", "Name"));
            dgView.Columns.Add(createColumn("Firstname", "Participant.Firstname", "Vorname"));
            dgView.Columns.Add(createColumn("Year", "Participant.Year", "Jg."));
            dgView.Columns.Add(createColumn("Class", "Participant.Class", "Klasse"));
            dgView.Columns.Add(createColumn("Club", "Participant.Club", "Verein"));
            dgView.Columns.Add(createColumn("Nation", "Participant.Nation", "Nat."));

            // Race Run Results
            if (_viewProvider is RaceRunResultViewProvider rrrVP)
            {
                dgView.Columns.Add(createColumnTime("Zeit", "Runtime", "ResultCode"));
                dgView.Columns.Add(createColumnDiff("Diff", "DiffToFirst"));
                dgView.Columns.Add(createColumnDiffInPercentage("[%]", "DiffToFirstPercentage"));
                dgView.Columns.Add(createColumnAnmerkung());

                setWarningLabelHandler(new RaceRunCompletedWarningLabelHandler(rrrVP.RaceRun, lblWarning));
            }

            // Total Results
            else if (_viewProvider is RaceResultViewProvider)
            {
                foreach (var r in _thisRace.GetRuns())
                {
                    dgView.Columns.Add(createColumnTime(string.Format("Zeit {0}", r.Run), string.Format("SubResults[{0}].Runtime", r.Run), string.Format("SubResults[{0}].RunResultCode ", r.Run)));
                    dgView.Columns.Add(createColumnDiff(string.Format("Diff {0}", r.Run), string.Format("SubResults[{0}].DiffToFirst", r.Run)));
                    dgView.Columns.Add(createColumnDiffInPercentage(string.Format("[%] {0}", r.Run), string.Format("SubResults[{0}].DiffToFirstPercentage", r.Run)));
                    dgView.Columns.Add(createColumnPosition(string.Format("SubResults[{0}].Position", r.Run), string.Format("SubResults[{0}].Position", r.Run), true));
                }

                dgView.Columns.Add(createColumnTime("Total", "TotalTime", "ResultCode"));
                dgView.Columns.Add(createColumnAnmerkung());

                setWarningLabelHandler(new RaceCompletedWarningLabelHandler(_thisRace, lblWarning));
            }
            // Start List
            else if (_viewProvider is StartListViewProvider)
            {
                if (_viewProvider is BasedOnResultsFirstRunStartListViewProvider slVP2)
                {
                    dgView.Columns.Add(createColumnTime("Zeit", "Runtime", "ResultCode"));
                    setWarningLabelHandler(new RaceRunCompletedWarningLabelHandler(slVP2.BasedOnRun, lblWarning));
                }
                else
                {
                    setWarningLabelHandler(new RaceWarningLabelHandler(_thisRace, lblWarning));
                }
            }

            dgView.ItemsSource = _viewProvider.GetView();
            cmbTotalResultGrouping.SelectCBItem(_viewProvider.ActiveGrouping);

            UiUtilities.EnableOrDisableColumns(_thisRace, dgView);
        }