using SWRIS.Controls; using SWRIS.Extensions; using SWRIS.Models; using System.Collections.ObjectModel; using System.Linq; using System.Windows; using System.Windows.Controls; namespace SWRIS.Pages.RealTime { /// /// OneRopeControl.xaml 的交互逻辑 /// public partial class OneRopeControl : UserControl { public static readonly DependencyProperty EquipmentsProperty = DependencyProperty.Register("Equipments", typeof(ObservableCollection), typeof(OneRopeControl), new PropertyMetadata(null)); public ObservableCollection Equipments { get { return (ObservableCollection)GetValue(EquipmentsProperty); } set { SetValue(EquipmentsProperty, value); } } public OneRopeControl() { InitializeComponent(); DataContext = this; } private void EquipmentAlarm_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if ((sender as TextBlock)?.DataContext is EquipmentDataModel equipmentData) { DamagesDialog damagesDialog = new DamagesDialog(equipmentData.Alarms); damagesDialog.ShowDialog(true); } } private void ParameterSetting_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if ((sender as StackPanel)?.DataContext is EquipmentDataModel equipmentData) { var equipment = App.Config.Equipments.FirstOrDefault(c => c.RopeNumber == equipmentData.RopeNumber); if (equipmentData != null && equipment != null) { ParameterDialog parameterDialog = new ParameterDialog(equipment, equipmentData.ClientSocket, equipmentData.RunningStatus); parameterDialog.ShowDialog(true); } } } private void OnCardLoaded(object sender, RoutedEventArgs e) { var border = sender as Border; if (!(border?.DataContext is EquipmentDataModel data)) return; if (border.FindName("ChartLine") is RealTimeLineChart chart) { var chartSource = data.Chart?.GetChartSource(); if (chart != null && chartSource != null) { chart.AddDataPoints(chartSource); } data.Chart = chart; } } } }