using FLY.Thick.Base.Client; using FLY.Thick.Base.Common; using FLY.Thick.Base.IService; using MultiLayout.UiModule; using FObjBase; using LiveCharts; using Misc; using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using FLY.Thick.Base.UI; using Unity; using Microsoft.Win32; namespace FLY.Thick.Base.UI.UiModule { /// <summary> /// FixGraph.xaml 的交互逻辑 /// </summary> public partial class FixGraph : UserControl { FixGraphVm viewModel; FixGraphItemParam graphparam; public FixGraph() { InitializeComponent(); } [InjectionMethod] public void Init(int id, IUnityContainer container, IFixService fixService, ITDGageService gageService) { //查找参数 graphparam = FixGraphParams.Current.Items.Find(p => p.ID == id); if (graphparam == null) { graphparam = new FixGraphItemParam() { ID = id }; FixGraphParams.Current.Items.Add(graphparam); FixGraphParams.Current.Save(); } //获取设备 viewModel = new FixGraphVm(); viewModel.Init(fixService, gageService.DynArea, graphparam); this.DataContext = viewModel; } private void Button_info_click(object sender, RoutedEventArgs e) { bool isPaused = viewModel.IsPaused; if (!isPaused) viewModel.IsPaused = true; FixGraphConfig w = new FixGraphConfig(); w.Init(graphparam); w.Owner = FLY.ControlLibrary.COMMON.GetWindow(this); w.ShowDialog(); viewModel.IsPaused = isPaused; } private void button_pause_Click(object sender, RoutedEventArgs e) { viewModel.IsPaused = !viewModel.IsPaused; } private void button_save_Click(object sender, RoutedEventArgs e) { viewModel.PreSave(); SaveFileDialog sfd = new SaveFileDialog(); sfd.FileName = viewModel.SavePath; if (sfd.ShowDialog() == true) { viewModel.SavePath = sfd.FileName; viewModel.Save((asyncContext, retData) => { this.Dispatcher.Invoke(() => { bool ret = (bool)retData; if (ret) { MessageBox.Show($"导出成功! {viewModel.SavePath }"); } else { MessageBox.Show($"导出失败!"); } }); }, null); } } private void button_analyze_Click(object sender, RoutedEventArgs e) { viewModel.GetDatas(out double intervalms, out List<double> datas); PgFixAnalyze p = new PgFixAnalyze(); p.Init(intervalms, datas); MultiLayout.FlyLayoutManager.NavigationService.Navigate(p); } } }