Advertisement
Guest User

Untitled

a guest
May 21st, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.69 KB | None | 0 0
  1. /// <summary>
  2.     /// Interaction logic for MainWindow.xaml
  3.     /// </summary>
  4.     public partial class MainWindow : Window, IMainWindowsCodeBehind
  5.     {
  6.         public delegate void ShowAlgorythm();
  7.         public delegate void StopShowAlgorythm();
  8.  
  9.         public MainWindow()
  10.         {
  11.             InitializeComponent();
  12.             this.Loaded += MainWindow_Loaded;
  13.         }
  14.  
  15.         private void MainWindow_Loaded(object sender, RoutedEventArgs e)
  16.         {
  17.             //загрузка вьюмодел для кнопок меню
  18.             MenuViewModel vm = new MenuViewModel();
  19.             //даем доступ к этому кодбихайнд
  20.             vm.CodeBehind = this;
  21.             //делаем эту вьюмодел контекстом данных
  22.             this.DataContext = vm;
  23.  
  24.             //загрузка стартовой View
  25.             LoadView(ViewType.Main);
  26.         }
  27.  
  28.         public void LoadView(ViewType typeView)
  29.         {
  30.             switch (typeView)
  31.             {
  32.                 case ViewType.Main:
  33.                     //загружаем вьюшку, ее вьюмодель
  34.                     MainUC view = new MainUC();
  35.                     MainViewModel vm = new MainViewModel(this);
  36.                     //связываем их м/собой
  37.                     view.DataContext = vm;
  38.                     //отображаем
  39.                     this.OutputView.Content = view;
  40.                     break;
  41.                 case ViewType.Definition:
  42.                     DefinitionUC viewD = new DefinitionUC();
  43.                     DefinitionViewModel vmD = new DefinitionViewModel(this);
  44.                     viewD.DataContext = vmD;
  45.                     this.OutputView.Content = viewD;
  46.                     break;
  47.                 case ViewType.FoundEuler:
  48.                     FoundEulerUC viewFE = new FoundEulerUC();
  49.                     FoundEulerViewModel vmFE = new FoundEulerViewModel(this);
  50.                     viewFE.DataContext = vmFE;
  51.                     this.OutputView.Content = viewFE;
  52.                     viewFE.ShowAlgoEul += new ShowAlgorythm(PresentEulerAlgo);
  53.                     break;
  54.                 case ViewType.OreTheorem:
  55.                     OreTheoremUC viewOT = new OreTheoremUC();
  56.                     OreTheoremViewModel vmOT = new OreTheoremViewModel(this);
  57.                     viewOT.DataContext = vmOT;
  58.                     this.OutputView.Content = viewOT;
  59.                     break;
  60.                 case ViewType.DiraсTheorem:
  61.                     DiraсTheoremUC viewDT = new DiraсTheoremUC();
  62.                     DiraсTheoremViewModel vmDT = new DiraсTheoremViewModel(this);
  63.                     viewDT.DataContext = vmDT;
  64.                     this.OutputView.Content = viewDT;
  65.                     break;
  66.                 case ViewType.FindHamilton:
  67.                     FindHamiltonUC viewFH = new FindHamiltonUC();
  68.                     FindHamiltonViewModel vmFH = new FindHamiltonViewModel(this);
  69.                     viewFH.DataContext = vmFH;
  70.                     this.OutputView.Content = viewFH;
  71.                     viewFH.ShowAlgoHam += new ShowAlgorythm(PresentHamilAlgo);
  72.                     break;
  73.                 case ViewType.TSP:
  74.                     TSPUC viewTSP = new TSPUC();
  75.                     TSPViewModel vmTSP = new TSPViewModel(this);
  76.                     viewTSP.DataContext = vmTSP;
  77.                     this.OutputView.Content = viewTSP;
  78.                     viewTSP.ShowAlgoTSP += new ShowAlgorythm(PresentTSPAlgo);
  79.                     viewTSP.ShowAlgoChristo += new ShowAlgorythm(PresentChristoAlgo);
  80.                     break;
  81.                 case ViewType.Train:
  82.                     TrainUC viewT = new TrainUC();
  83.                     TrainViewModel vmT = new TrainViewModel(this);
  84.                     viewT.DataContext = vmT;
  85.                     this.OutputView.Content = viewT;
  86.                     break;
  87.                 case ViewType.FinalTestAutorization:
  88.                     FinalTestAutorizationUC viewFTA = new FinalTestAutorizationUC();
  89.                     FinalTestAutorizationViewModel vmFTA = new FinalTestAutorizationViewModel(this);
  90.                     viewFTA.DataContext = vmFTA;
  91.                     this.OutputView.Content = viewFTA;
  92.                     viewFTA.LogSucceed += new FinalTestAutorizationUC.LoginSucceed(ReactToAutorization);
  93.                     break;
  94.             }          
  95.         }
  96.  
  97.         public void ShowMessage(string message)
  98.         {
  99.             MessageBox.Show(message);
  100.         }
  101.  
  102.         public void ReactToAutorization()
  103.         {
  104.             FinalTestUC viewFT = new FinalTestUC();
  105.             FinalTestViewModel vmFT = new FinalTestViewModel(this);
  106.             viewFT.DataContext = vmFT;
  107.             this.OutputView.Content = viewFT;
  108.             viewFT.EndTest += new FinalTestUC.TestEnded(ReactToEndTest);
  109.         }
  110.  
  111.         public void ReactToEndTest()
  112.         {
  113.             EndedTestUC viewET = new EndedTestUC();
  114.             EndedTestViewModel vmET = new EndedTestViewModel(this);
  115.             viewET.DataContext = vmET;
  116.             this.OutputView.Content = viewET;
  117.             buttonEndTest.Visibility = Visibility.Hidden;
  118.         }
  119.  
  120.         public void PresentEulerAlgo()
  121.         {
  122.             DrawEuAlgoUC viewDAE = new DrawEuAlgoUC();
  123.             DrawAlgoEuViewModel vmDAE = new DrawAlgoEuViewModel(this);
  124.             viewDAE.DataContext = vmDAE;
  125.             this.OutputView.Content = viewDAE;
  126.             viewDAE.StopShow += new StopShowAlgorythm(PresentEulerUC);
  127.         }
  128.  
  129.         public void PresentHamilAlgo()
  130.         {
  131.             DrawHaAlgoUC viewDAH = new DrawHaAlgoUC();
  132.             DrawAlgoHaViewModel vmDAH = new DrawAlgoHaViewModel(this);
  133.             viewDAH.DataContext = vmDAH;
  134.             this.OutputView.Content = viewDAH;
  135.             viewDAH.StopShow += new StopShowAlgorythm(PresentHamilUC);
  136.         }
  137.  
  138.         public void PresentTSPAlgo()
  139.         {
  140.             DrawTSPAlgoUC viewDAT = new DrawTSPAlgoUC();
  141.             DrawAlgoTSPViewModel vmDAT = new DrawAlgoTSPViewModel(this);
  142.             viewDAT.DataContext = vmDAT;
  143.             this.OutputView.Content = viewDAT;
  144.             viewDAT.StopShow += new StopShowAlgorythm(PresentTSPUC);
  145.         }
  146.  
  147.         public void PresentChristoAlgo()
  148.         {
  149.             DrawChristoAlgoUC viewDAC = new DrawChristoAlgoUC();
  150.             DrawAlgoChristoViewModel vmDAC = new DrawAlgoChristoViewModel(this);
  151.             viewDAC.DataContext = vmDAC;
  152.             this.OutputView.Content = viewDAC;
  153.             viewDAC.StopShow += new StopShowAlgorythm(PresentTSPUC);
  154.         }
  155.  
  156.         public void PresentEulerUC()
  157.         {
  158.             FoundEulerUC viewFE = new FoundEulerUC();
  159.             FoundEulerViewModel vmFE = new FoundEulerViewModel(this);
  160.             viewFE.DataContext = vmFE;
  161.             this.OutputView.Content = viewFE;
  162.             viewFE.ShowAlgoEul += new ShowAlgorythm(PresentEulerAlgo);
  163.         }
  164.  
  165.         public void PresentHamilUC()
  166.         {
  167.             FindHamiltonUC viewFH = new FindHamiltonUC();
  168.             FindHamiltonViewModel vmFH = new FindHamiltonViewModel(this);
  169.             viewFH.DataContext = vmFH;
  170.             this.OutputView.Content = viewFH;
  171.             viewFH.ShowAlgoHam += new ShowAlgorythm(PresentHamilAlgo);
  172.         }
  173.  
  174.         public void PresentTSPUC()
  175.         {
  176.             TSPUC viewTSP = new TSPUC();
  177.             TSPViewModel vmTSP = new TSPViewModel(this);
  178.             viewTSP.DataContext = vmTSP;
  179.             this.OutputView.Content = viewTSP;
  180.             viewTSP.ShowAlgoTSP += new ShowAlgorythm(PresentTSPAlgo);
  181.             viewTSP.ShowAlgoChristo += new ShowAlgorythm(PresentChristoAlgo);
  182.         }
  183.     }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement