| | |
| | | using HMI.Core.Util; |
| | | using HMI.DataViewer.Entity; |
| | | using HMI.UI.Util; |
| | | using Panuon.WPF.UI; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Collections.ObjectModel; |
| | |
| | | using System.Linq; |
| | | using System.Windows; |
| | | using System.Windows.Controls; |
| | | using System.Windows.Controls.Primitives; |
| | | using System.Windows.Data; |
| | | using System.Windows.Media; |
| | | |
| | | namespace HMI.DataViewer |
| | | { |
| | |
| | | helper = new SqliteHelper(setting.DBFilePath); |
| | | sql = $"SELECT {fields} FROM {setting.TableName} {conditon}"; |
| | | DataTable dt = helper.GetDataTable(sql); |
| | | |
| | | HMI.UI.DpUtil.DataGridHelper.SetSelectedColumn(dataTable, null); |
| | | dataTable.ItemsSource = dt.DefaultView; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | log.Error($"Select Data Failed. SQL: {sql}", ex); |
| | | ToastHelper.Error(Window.GetWindow(this), $"查询失败!{ex.Message}"); |
| | | |
| | | } |
| | | finally |
| | | { |
| | |
| | | setting?.Condition?.Select(d => new QueryData { Key = d.Key, Name = d.Desc, Condition = "=" }).ToList()); |
| | | |
| | | var temp = dataTable.Columns[0]; |
| | | HMI.UI.DpUtil.DataGridHelper.SetSelectedColumn(dataTable, null); |
| | | dataTable.Columns.Clear(); |
| | | dataTable.Columns.Add(temp); |
| | | foreach (var data in Datas) |
| | |
| | | DataGridTextColumn textColumn = new DataGridTextColumn |
| | | { |
| | | Header = header, |
| | | Binding = new Binding(bindingPath) |
| | | , |
| | | Binding = new Binding(bindingPath), |
| | | Width = new DataGridLength(1, DataGridLengthUnitType.Star) |
| | | }; |
| | | dataTable.Columns.Add(textColumn); |
| | | } |
| | | |
| | | private void dataTable_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) |
| | | { |
| | | // 获取点击的元素 |
| | | DependencyObject dep = (DependencyObject)e.OriginalSource; |
| | | |
| | | // 遍历找到 DataGridColumnHeader |
| | | while (dep != null && !(dep is DataGridColumnHeader) && !(dep is DataGridRow)) |
| | | { |
| | | dep = VisualTreeHelper.GetParent(dep); |
| | | } |
| | | HMI.UI.DpUtil.DataGridHelper.SetSelectedColumn(dataTable, null); |
| | | |
| | | if (dep is DataGridColumnHeader columnHeader) |
| | | { |
| | | // 获取列索引 |
| | | int columnIndex = columnHeader.Column.DisplayIndex; |
| | | |
| | | // 清除已有选择 |
| | | dataTable.SelectedCells.Clear(); |
| | | |
| | | // 遍历所有行,选中该列的所有单元格 |
| | | foreach (var item in dataTable.Items) |
| | | { |
| | | DataGridCellInfo cellInfo = new DataGridCellInfo(item, columnHeader.Column); |
| | | dataTable.SelectedCells.Add(cellInfo); |
| | | } |
| | | HMI.UI.DpUtil.DataGridHelper.SetSelectedColumn(dataTable, columnHeader.Column); |
| | | |
| | | e.Handled = true; // 防止默认行为 |
| | | } |
| | | else if (dep is DataGridRow row) |
| | | { |
| | | // 清除已有选择 |
| | | dataTable.SelectedCells.Clear(); |
| | | dataTable.SelectedItem = row.Item; |
| | | e.Handled = true; |
| | | } |
| | | } |
| | | |
| | | private void MenuItem_Click(object sender, RoutedEventArgs e) |
| | | { |
| | | DataGridColumn column = HMI.UI.DpUtil.DataGridHelper.GetSelectedColumn(dataTable); |
| | | |
| | | } |
| | | } |
| | | } |