private void PopulatePropertyValues(CalibrationComponent calibrationComponent) { int rowCount = 2; const int rowHeight = 25; var calibrationComponentProperies = calibrationComponent.CalibrationComponentType.CalibrationComponentTypeProperties.OrderBy(x => x.Ordinal); foreach (var calibrationComponentProperty in calibrationComponentProperies) { PropertiesGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(rowHeight - 2) }); var propertyValue = GetCalibrationComponentPropertyValue(calibrationComponent, calibrationComponentProperty); if (calibrationComponentProperty.CalibrationEngineeringUnit == null) { calibrationComponentProperty.CalibrationEngineeringUnit = new CalibrationEngineeringUnit { Id = calibrationComponentProperty.CalibrationEngineeringUnitId, Name = (from x in mCalibrationEngineeringUnits where x.Id == calibrationComponentProperty.CalibrationEngineeringUnitId select x.Name).FirstOrDefault() }; } BindLabel(calibrationComponentProperty, "CalibrationProperty.Name", rowCount, 0, true); BindLabel(calibrationComponentProperty, "CalibrationEngineeringUnit.Name", rowCount, 1, false); CalibrationComponentPropertyWrapViewModel ccpwvm = new CalibrationComponentPropertyWrapViewModel(propertyValue, calibrationComponentProperty.CalibrationProperty.Type); CalibrationComponentPropertyWrapViewModelList.Add(ccpwvm); BindTextBox(ccpwvm, "AsFound", rowCount, 2, calibrationComponentProperty.CalibrationProperty.EnableAsFound); BindTextBox(ccpwvm, "AsLeft", rowCount, 4, true); rowCount++; } LastInspectedTextBox.ResetOriginalValue(); LastInspectedTextBox.ControlChanged += ControlChanged; NextInspectionTextBox.ResetOriginalValue(); NextInspectionTextBox.ControlChanged += ControlChanged; NotesTextBox.ResetOriginalValue(); NotesTextBox.ControlChanged += ControlChanged; }
private void BindTextBox(CalibrationComponentPropertyWrapViewModel propertyValue, string bindName, int rowCount, int columnPossition, bool enabled) { CmsTextBox newCmsTextBox = new CmsTextBox(); newCmsTextBox.IsEnabled = enabled; Binding binding = new Binding(bindName) { Mode = BindingMode.TwoWay, Source = propertyValue, ValidatesOnExceptions = true, UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged }; newCmsTextBox.SetBinding(TextBox.TextProperty, binding); newCmsTextBox.Margin = new Thickness(1); newCmsTextBox.ResetOriginalValue(); newCmsTextBox.ControlChanged += ControlChanged; PropertiesGrid.Children.Add(newCmsTextBox); Grid.SetRow(newCmsTextBox, rowCount); Grid.SetColumn(newCmsTextBox, columnPossition); }