TwoRopesControl.xaml.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using SWRIS.Controls;
  2. using SWRIS.Extensions;
  3. using SWRIS.Models;
  4. using System.Collections.ObjectModel;
  5. using System.Linq;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. namespace SWRIS.Pages.RealTime
  9. {
  10. /// <summary>
  11. /// TwoRopesPage.xaml 的交互逻辑
  12. /// </summary>
  13. public partial class TwoRopesControl : UserControl
  14. {
  15. public static readonly DependencyProperty EquipmentsProperty =
  16. DependencyProperty.Register("Equipments", typeof(ObservableCollection<EquipmentDataModel>),
  17. typeof(TwoRopesControl),
  18. new PropertyMetadata(null));
  19. public ObservableCollection<EquipmentDataModel> Equipments
  20. {
  21. get { return (ObservableCollection<EquipmentDataModel>)GetValue(EquipmentsProperty); }
  22. set { SetValue(EquipmentsProperty, value); }
  23. }
  24. public TwoRopesControl()
  25. {
  26. InitializeComponent();
  27. DataContext = this;
  28. }
  29. private void EquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  30. {
  31. if ((sender as TextBlock)?.DataContext is EquipmentDataModel equipmentData)
  32. {
  33. DamagesDialog damagesDialog = new DamagesDialog(equipmentData.Alarms);
  34. damagesDialog.ShowDialog(true);
  35. }
  36. }
  37. private void ParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  38. {
  39. if ((sender as StackPanel)?.DataContext is EquipmentDataModel equipmentData)
  40. {
  41. var equipment = App.Config.Equipments.FirstOrDefault(c => c.RopeNumber == equipmentData.RopeNumber);
  42. if (equipmentData != null && equipment != null)
  43. {
  44. ParameterDialog parameterDialog = new ParameterDialog(equipment, equipmentData.ClientSocket, equipmentData.RunningStatus);
  45. parameterDialog.ShowDialog(true);
  46. }
  47. }
  48. }
  49. private void OnCardLoaded(object sender, RoutedEventArgs e)
  50. {
  51. var border = sender as Border;
  52. if (!(border?.DataContext is EquipmentDataModel data)) return;
  53. if (border.FindName("ChartLine") is RealTimeLineChart chart)
  54. {
  55. var chartSource = data.Chart?.GetChartSource();
  56. if (chart != null && chartSource != null)
  57. {
  58. chart.AddDataPoints(chartSource);
  59. }
  60. data.Chart = chart;
  61. }
  62. }
  63. }
  64. }