using DyeingComputer.ViewModel; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; 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 static DyeingComputer.UserClass.SqliteHelper; namespace DyeingComputer.View { /// /// SysSetView.xaml 的交互逻辑 /// public partial class SysSetView : UserControl { public SysSetView() { InitializeComponent(); set_sql(); } private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径 public void set_sql() { SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 MainWindowViewModel.dt_SysSet = SQLiteHelpers.ExecuteDataSet("select * from System order by ParameterID asc", null).Tables[0]; //读取计划表写入缓存 if (MainWindowViewModel.dt_SysSet.Rows.Count>0) Grid.ItemsSource = MainWindowViewModel.dt_SysSet.DefaultView; //转换显示计划表 SQLiteHelpers.Close(); //关闭连接 } private void Grid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)//数据表输入事件 { string ID; string newValue = (e.EditingElement as TextBox).Text;//获得输入单元格信息 int rownum = Grid.SelectedIndex;//获取鼠标选中行并定义变量 if (rownum != -1)//判断鼠标定位是否有效 { ID = (Grid.Columns[1].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第0列, Dictionary datagrid_v = new Dictionary();//缓存函数 datagrid_v.Add("Value", newValue); SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Update("System", datagrid_v, "ParameterID ='" + ID + "'", null);//更新 MainWindowViewModel.dt_SysSet = SQLiteHelpers.ExecuteDataSet("select * from System order by ParameterID asc", null).Tables[0]; SQLiteHelpers.Close();//关闭数据库 } } private void UserControl_Loaded(object sender, RoutedEventArgs e)//打开页面时的操作 { DataGridRow dr = (DataGridRow)Grid.ItemContainerGenerator.ContainerFromIndex(0);//取第0行单元格 DataGridCellsPresenter presenter = GetVisualChild(dr); DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(3); //取第3列每行单元格 cell.Focus(); Grid.SelectedIndex = 0; } public static T GetVisualChild(Visual parent) where T : Visual { T child = default(T); int numVisuals = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < numVisuals; i++) { Visual v = (Visual)VisualTreeHelper.GetChild(parent, i); child = v as T; if (child == null) { child = GetVisualChild(v); } if (child != null) { break; } } return child; } } }