diff --git a/ViewModel/Grading/GradingResultVM.cs b/ViewModel/Grading/GradingResultVM.cs index f2f7b69..6d16a97 100644 --- a/ViewModel/Grading/GradingResultVM.cs +++ b/ViewModel/Grading/GradingResultVM.cs @@ -75,7 +75,7 @@ public class GradingResultVM : BaseViewModel } InitCombobox(); DS = "NA"; - // AutoSave(); + AutoSave(); } #region 画面初始化相关操作 @@ -900,12 +900,14 @@ public class GradingResultVM : BaseViewModel dictionary.Add("TWIST", "扭曲度"); dictionary.Add("CULET_TO_TABLE", "底尖到台面偏心比"); dictionary.Add("round", "圆形"); - return dictionary[id]; + dictionary.Add("", ""); + return dictionary[id??""]; } private string GetGradeName(int order) { // TODO DB没关联 Dictionary dictionary = new(); + dictionary.Add(0, ""); dictionary.Add(1,"极好"); dictionary.Add(2, "很好"); dictionary.Add(3, "好"); @@ -954,7 +956,32 @@ public class GradingResultVM : BaseViewModel SymLevelTotal = string.Empty; } } - + + public RowDetail getSelectData(string testItemId) + { + RowDetail row = new RowDetail(); + row.itemName = GetName(testItemId); + + var data = DtResults.Where(x => x.TestItemId == testItemId).FirstOrDefault(); + row.Avg = data != null ? data.Avg : ""; + row.Dev = data != null ? data.Dev : ""; + row.Max = data != null ? data.Max : ""; + row.Min = data != null ? data.Min : ""; + row.item1 = "1"; + row.item2 = "2"; + row.item3 = "3"; + row.item4 = "4"; + row.item5 = "5"; + row.item6 = "6"; + row.item7 = "7"; + row.item8 = "8"; + row.MaxIndex = 0; + row.MinIndex = 7; + row.CutLevel = data != null ? data.CutLevel : ""; + row.SymLevel = GetGradeName(data != null ? data.SymLevel??0 : 0); + return row; + } + #region 钻石操作相关 //暂略 //部分代码(直接操作控件)需要在xaml.cs里边写 @@ -1015,4 +1042,25 @@ public class DataInfo { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } -} \ No newline at end of file +} + +public class RowDetail +{ + public string? itemName { get; set; } + public string? Avg { get; set; } + public string? Dev { get; set; } + public string? Min { get; set; } + public string? Max { get; set; } + public string? item1 { get; set; } + public string? item2 { get; set; } + public string? item3 { get; set; } + public string? item4 { get; set; } + public string? item5 { get; set; } + public string? item6 { get; set; } + public string? item7 { get; set; } + public string? item8 { get; set; } + public string? CutLevel { get; set; } + public string? SymLevel { get; set; } + public int? MaxIndex { get; set; } + public int? MinIndex { get; set; } +} diff --git a/Views/Grading/GradingResult.xaml b/Views/Grading/GradingResult.xaml index 123c256..7059611 100644 --- a/Views/Grading/GradingResult.xaml +++ b/Views/Grading/GradingResult.xaml @@ -104,7 +104,8 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Views/Grading/GradingResult.xaml.cs b/Views/Grading/GradingResult.xaml.cs index 5c9f887..8009c22 100644 --- a/Views/Grading/GradingResult.xaml.cs +++ b/Views/Grading/GradingResult.xaml.cs @@ -1,14 +1,8 @@ -using System.Windows.Controls; +using System.Windows; +using System.Windows.Controls; using System.Windows.Input; -using System.Windows.Media.Media3D; -using HelixToolkit.Wpf.SharpDX; -using SharpDX; -using SparkClient.Model.Entity; -using SparkClient.Model.Helper; using SparkClient.ViewModel.Grading; using GeometryModel3D = HelixToolkit.Wpf.SharpDX.GeometryModel3D; -using MeshGeometry3D = HelixToolkit.Wpf.SharpDX.MeshGeometry3D; -using PerspectiveCamera = HelixToolkit.Wpf.SharpDX.PerspectiveCamera; namespace SparkClient.Views.Grading; @@ -125,4 +119,48 @@ public partial class GradingResult var d = DataContext as GradingResultVM; d.ChangeSym(null); } + + private void dataGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) + { + var dataGrid = sender as DataGrid; + var selectedItem = dataGrid.SelectedItem; + + if (selectedItem != null) + { + // 获取选中行的可视化元素 + var selectedRow = dataGrid.ItemContainerGenerator.ContainerFromItem(selectedItem) as DataGridRow; + if (selectedRow != null) + { + // 获取选中行第一列的坐标 + // 获取选中行第一列的单元格内容 + var firstCell = dataGrid.Columns[0].GetCellContent(selectedRow); + + // 将 firstCell 的边界转换为屏幕坐标系 + var firstCellBounds = firstCell.PointToScreen(new Point(0, 0)); + + // 计算Popup的位置 + var popupPosition = new Point(firstCellBounds.X + firstCell.RenderSize.Width, firstCellBounds.Y + firstCell.RenderSize.Height + 15); + var selectObject = selectedItem as DataInfo; + string testItemId = selectObject.TestItemId; + var d = DataContext as GradingResultVM; + RowDetail rowDetail = d.getSelectData(testItemId); + // 设置Popup的位置 + detailPopup.HorizontalOffset = popupPosition.X; + detailPopup.VerticalOffset = popupPosition.Y; + detailPopup.IsOpen = true; + RowDetail.Items.Clear(); + RowDetail.Items.Add(rowDetail); + } + } + } + + private void Window_MouseDown(object sender, MouseButtonEventArgs e) + { + detailPopup.IsOpen = false; + } + + private void Window_MouseDown(object sender, RoutedEventArgs e) + { + detailPopup.IsOpen = false; + } } \ No newline at end of file