You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
175 lines
7.1 KiB
175 lines
7.1 KiB
using DyeingComputer.KEY;
|
|
using DyeingComputer.ViewModel;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Security.Cryptography;
|
|
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.Animation;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Shapes;
|
|
using static DyeingComputer.UserClass.SqliteHelper;
|
|
|
|
namespace DyeingComputer.View
|
|
{
|
|
/// <summary>
|
|
/// InOutView.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class InOutView : UserControl
|
|
{
|
|
public InOutView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
string ID;
|
|
private TextBox currentTextBox;
|
|
private TouchKeyboardNumeral numeralKeyboard;
|
|
// private SQLiteHelper SQLiteHelpers = null; //定义数据库
|
|
//private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
|
|
|
|
private void Grid_D_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
int rownum = Grid_D.SelectedIndex;//获取鼠标选中行并定义变量
|
|
if (rownum != -1)//判断鼠标定位是否有效
|
|
{
|
|
ID = (Grid_D.Columns[0].GetCellContent(Grid_D.Items[rownum]) as TextBlock).Text;//定位第0列,
|
|
}
|
|
}
|
|
private void Grid_A_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
int rownum = Grid_A.SelectedIndex;//获取鼠标选中行并定义变量
|
|
if (rownum != -1)//判断鼠标定位是否有效
|
|
{
|
|
ID = (Grid_A.Columns[0].GetCellContent(Grid_A.Items[rownum]) as TextBlock).Text;//定位第0列,
|
|
}
|
|
}
|
|
private void Grid_M_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void Grid_D_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
|
|
{
|
|
MainWindowViewModel.D_view = false;
|
|
}
|
|
private void Grid_D_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
|
|
{
|
|
currentTextBox = e.EditingElement as TextBox;
|
|
if (numeralKeyboard == null)
|
|
{
|
|
numeralKeyboard = new TouchKeyboardNumeral();
|
|
numeralKeyboard.KeyPressed += NumeralKeyboard_KeyPressed;
|
|
numeralKeyboard.Closed += (s, args) => { numeralKeyboard = null; };
|
|
}
|
|
// 显示键盘
|
|
numeralKeyboard.Show();
|
|
// 定位键盘位置(在主窗口下方)
|
|
UpdateKeyboardPosition();
|
|
}
|
|
private void Grid_D_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
|
|
{
|
|
string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息
|
|
if (newValue.Count() == 4)
|
|
{
|
|
Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数
|
|
datagrid_v.Add("PLC", newValue);
|
|
// SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
MainWindow.SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
|
|
//SQLiteHelpers.Close();//关闭数据库
|
|
}
|
|
MainWindowViewModel.SQL_data();//重新获得io表
|
|
MainWindowViewModel.D_view = true;
|
|
}
|
|
|
|
private void Grid_A_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
|
|
{
|
|
MainWindowViewModel.A_view = false;
|
|
}
|
|
private void Grid_A_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
|
|
{
|
|
currentTextBox = e.EditingElement as TextBox;
|
|
if (numeralKeyboard == null)
|
|
{
|
|
numeralKeyboard = new TouchKeyboardNumeral();
|
|
numeralKeyboard.KeyPressed += NumeralKeyboard_KeyPressed;
|
|
numeralKeyboard.Closed += (s, args) => { numeralKeyboard = null; };
|
|
}
|
|
// 显示键盘
|
|
numeralKeyboard.Show();
|
|
// 定位键盘位置(在主窗口下方)
|
|
UpdateKeyboardPosition();
|
|
}
|
|
private void Grid_A_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
|
|
{
|
|
string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息
|
|
if (newValue.Count() == 4)
|
|
{
|
|
Dictionary<string, object> datagrid_v = new Dictionary<string, object>();//缓存函数
|
|
datagrid_v.Add("PLC", newValue);
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
MainWindow.SQLiteHelpers.Update("IOName", datagrid_v, "ID ='" + ID + "'", null);//更新
|
|
//SQLiteHelpers.Close();//关闭数据库
|
|
}
|
|
MainWindowViewModel.SQL_data();//重新获得io表
|
|
MainWindowViewModel.A_view = true;
|
|
}
|
|
|
|
// 更新键盘位置
|
|
private void UpdateKeyboardPosition()
|
|
{
|
|
if (numeralKeyboard == null) return;
|
|
|
|
// 获取主窗口的位置
|
|
var mainWindowWidth = this.Width;
|
|
var mainWindowHeight = this.Height;
|
|
|
|
// 计算键盘位置(主窗口底部中央)
|
|
numeralKeyboard.Left = (mainWindowWidth - numeralKeyboard.Width) / 2;
|
|
numeralKeyboard.Top = mainWindowHeight / 2;
|
|
}
|
|
// 键盘按键事件处理
|
|
private void NumeralKeyboard_KeyPressed(object sender, TouchKeyboardNumeral.KeyPressedEventArgs e)
|
|
{
|
|
switch (e.KeyType)
|
|
{
|
|
/* case KeyType.Character:
|
|
currentTextBox.Text += e.KeyValue;
|
|
break;
|
|
case KeyType.Backspace:
|
|
if (currentTextBox.Text.Length > 0)
|
|
{
|
|
currentTextBox.Text = currentTextBox.Text.Substring(0, currentTextBox.Text.Length - 1);
|
|
}
|
|
break;*/
|
|
case KeyType.Enter:
|
|
// 回车键处理
|
|
if (!String.IsNullOrEmpty(e.KeyValue))
|
|
{
|
|
currentTextBox.Text = e.KeyValue;
|
|
}
|
|
numeralKeyboard.Close();
|
|
break;
|
|
case KeyType.Hide:
|
|
// 隐藏键盘处理
|
|
numeralKeyboard.Close();
|
|
break;
|
|
}
|
|
Grid_D.CommitEdit();
|
|
|
|
Grid_A.CommitEdit();
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|