20240301_JSEQ_upperpc/JiangsuEarthquake_test/JiangsuEarthquake/Views/UserControls/AlarmSettingView.xaml.cs

92 lines
2.9 KiB
C#
Raw Permalink Normal View History

using JiangsuEarthquake.ViewModels;
using System;
using System.Collections.Generic;
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 UserControl = System.Windows.Controls.UserControl;
namespace JiangsuEarthquake.Views.UserControls
{
/// <summary>
/// AlarmSettingView.xaml 的交互逻辑
/// </summary>
public partial class AlarmSettingView : UserControl
{
public AlarmSettingView(int id)
{
InitializeComponent();
this.AlarmParaCom.Items.Add("电流");
this.AlarmParaCom.Items.Add("电压");
this.AlarmFuncCom.Items.Add("下限报警");
this.AlarmFuncCom.Items.Add("上限报警");
this.AlarmFuncCom.Items.Add("上下限报警");
this.AlarmFuncCom.Items.Add("区间内报警");
//AlarmSetMessage.DataContext = MainWindow.mainViewModel;
if (id == 1)
this.DataContext = MainViewModel.boosterStationStateDataViewModel1;
else
this.DataContext = MainViewModel.boosterStationStateDataViewModel2;
}
private void AlarmUpTB_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int caretIndex = AlarmUpTB.CaretIndex;
string textBefore = AlarmUpTB.Text.Substring(0, caretIndex);
string textAfter = AlarmUpTB.Text.Substring(caretIndex);
string newText = textBefore + e.Text + textAfter;
if (IsIntegerInRange(newText, 1, 100))
{
// 输入是有效的,允许输入
e.Handled = false;
}
else
{
// 输入不在1到120范围内不允许输入
e.Handled = true;
}
}
private bool IsIntegerInRange(string text, int min, int max)
{
if (int.TryParse(text, out int value) && value >= min && value <= max)
{
return true;
}
return false;
}
private void AlarmDownTB_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int caretIndex = AlarmDownTB.CaretIndex;
string textBefore = AlarmDownTB.Text.Substring(0, caretIndex);
string textAfter = AlarmDownTB.Text.Substring(caretIndex);
string newText = textBefore + e.Text + textAfter;
if (IsIntegerInRange(newText, 0, 120))
{
// 输入是有效的,允许输入
e.Handled = false;
}
else
{
// 输入不在1到120范围内不允许输入
e.Handled = true;
}
}
}
}