Пример #1
0
    protected override void OnStartup(StartupEventArgs e) {
      base.OnStartup(e);

      _cancellationTokenSource = new CancellationTokenSource();

      _mophApp = new Common.Com.MophAppProxy();

      var pluginFactory = new PluginFactory();

      string pluginPath = Environment.CurrentDirectory;
      
      var gris5aPluginBulder= pluginFactory.CreatePluginBuilder(string.Format(@"{0}\ViphApp.Gris5a.dll", pluginPath));
      var no2PluginBulder = pluginFactory.CreatePluginBuilder(string.Format(@"{0}\ViphApp.No2.dll", pluginPath));
      var no3PluginBulder = pluginFactory.CreatePluginBuilder(string.Format(@"{0}\ViphApp.No3.dll", pluginPath));

      ObservableCollection<IPluginPhantom> availablePhantoms = new ObservableCollection<IPluginPhantom>() {
        gris5aPluginBulder.BuildPluginPhantom(_mophApp),
        no2PluginBulder.BuildPluginPhantom(_mophApp),
        no3PluginBulder.BuildPluginPhantom(_mophApp)};

      var mainViewModel = new UI.MainViewModel(_mophApp, availablePhantoms);

      var app = new UI.Views.MainWindow();
      app.DataContext = mainViewModel;

      var templ = gris5aPluginBulder.BuildPhantomTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      templ = gris5aPluginBulder.BuildControlTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      templ = no2PluginBulder.BuildPhantomTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      templ = no2PluginBulder.BuildControlTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      templ = no3PluginBulder.BuildPhantomTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      templ = no3PluginBulder.BuildControlTemplate();
      app.Resources.Add(templ.DataTemplateKey, templ);
      app.Closing += mainViewModel.OnClosing;
      app.Show();
    }