private void CmbTotalResult_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (cmbTotalResult.SelectedValue is CBItem selected)
     {
         CBObjectTotalResults selObj = selected.Value as CBObjectTotalResults;
         if (selObj == null) // Fallback
         {
             displayView(_thisRace.GetResultViewProvider());
         }
         else if (selObj.Type == "participants")
         {
             displayParticipants();
         }
         else if (selObj.Type == "raceresults")
         {
             displayView(_thisRace.GetResultViewProvider());
         }
         else if (selObj.Type == "results_run")
         {
             displayView(selObj.RaceRun.GetResultViewProvider());
         }
         else if (selObj.Type == "startlist_run")
         {
             displayView(selObj.RaceRun.GetStartListProvider());
         }
     }
 }
        private void BtnPrint_Click(object sender, RoutedEventArgs e)
        {
            PDFReport report = null;

            if (cmbTotalResult.SelectedValue is CBItem selected)
            {
                CBObjectTotalResults selObj = selected.Value as CBObjectTotalResults;
                if (selObj == null ||             // Fallback
                    selObj.Type == "raceresults") // ResultList
                {
                    if (_thisRace.GetResultViewProvider() is DSVSchoolRaceResultViewProvider)
                    {
                        report = new DSVSchoolRaceResultReport(_thisRace);
                    }
                    else
                    {
                        report = new RaceResultReport(_thisRace);
                    }
                }
                else if (selObj.Type == "raceresults")
                {
                    displayView(_thisRace.GetResultViewProvider());
                }
                else if (selObj.Type == "results_run")
                {
                    report = new RaceRunResultReport(selObj.RaceRun);
                }
                else if (selObj.Type == "startlist_run")
                {
                    if (selObj.RaceRun.GetStartListProvider() is BasedOnResultsFirstRunStartListViewProvider)
                    {
                        report = new StartListReport2ndRun(selObj.RaceRun);
                    }
                    else
                    {
                        report = new StartListReport(selObj.RaceRun);
                    }
                }
            }

            if (report != null)
            {
                report.WithDiagram    = chkPrintOptionWithDiagram.IsChecked == true;
                report.WithRaceHeader = chkPrintOptionWithRaceHeader.IsChecked == true;
                CreateAndOpenReport(report);
            }
        }