using System.Windows.Controls; using YY.Admin.ViewModels.RubberQuickTest; namespace YY.Admin.Views.RubberQuickTest; public partial class RubberQuickTestOperationView : UserControl { private RubberQuickTestOperationViewModel? _vm; public RubberQuickTestOperationView() { InitializeComponent(); DataContextChanged += OnDataContextChanged; } private void OnDataContextChanged(object sender, System.Windows.DependencyPropertyChangedEventArgs e) { if (_vm != null) _vm.InspectColumnsChanged -= RebuildInspectColumns; _vm = DataContext as RubberQuickTestOperationViewModel; if (_vm != null) { _vm.InspectColumnsChanged += RebuildInspectColumns; RebuildInspectColumns(); } } private void RebuildInspectColumns() { if (_vm == null) return; InspectResultGrid.Columns.Clear(); InspectResultGrid.Columns.Add(new DataGridTextColumn { Header = "编号", Binding = new System.Windows.Data.Binding("RowNo"), IsReadOnly = true, Width = 80 }); for (int i = 0; i < _vm.DataPointColumns.Count; i++) { var col = _vm.DataPointColumns[i]; var binding = new System.Windows.Data.Binding($"Cells[{i}].Value") { UpdateSourceTrigger = System.Windows.Data.UpdateSourceTrigger.PropertyChanged, Mode = System.Windows.Data.BindingMode.TwoWay }; InspectResultGrid.Columns.Add(new DataGridTextColumn { Header = col.PointName ?? $"点{i + 1}", Binding = binding, Width = 90, IsReadOnly = false }); } InspectResultGrid.Columns.Add(new DataGridTextColumn { Header = "实验结果", Binding = new System.Windows.Data.Binding("InspectResultText"), IsReadOnly = true, Width = 90 }); } private void InspectResultGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (_vm == null) return; _vm.SelectedInspectRow = InspectResultGrid.SelectedItem as QuickTestInspectRowViewModel; } }