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;
}
}
}
}