private void DataField_LostFocus(object sender, RoutedEventArgs e) { if ((TextField.Text.Length > 0) && (_textContentChanged)) { DataFieldEventArgs ev = new DataFieldEventArgs(DataFieldChangedEvent) { FieldData = TextField.Text }; IDictionary <string, object> valueDictionary = new Dictionary <string, object> { [TABLENAME] = TableName, [FIELD] = DataSourcePath, [DATATABLE] = ItemSource, [CHANGED_VALUE] = TextField.Text }; _filler.FillDataObject(TextField.Text, DataSourcePath, ref _dataObject); DataObject = _dataObject; valueDictionary[DATAOBJECT] = DataObject; ev.ChangedValuesObjects = valueDictionary; if (this.ItemChangedCommand != null) { if (ItemChangedCommand.CanExecute(valueDictionary)) { ItemChangedCommand.Execute(valueDictionary); } } else { RaiseEvent(ev); } _textContentChanged = false; } }
private void DataField_LostFocus(object sender, RoutedEventArgs e) { TextBox textField = GetTemplateChild("PART_TextField") as TextBox; // here we put the validation logic using data annotations just for data objects if (IsReadOnly) { return; } if (DataObject != null) { BaseViewObject baseViewObject = null; if (DataObject is BaseViewObject) { baseViewObject = DataObject as BaseViewObject; } else { var dto = ComponentUtils.GetPropValue(DataObject, "Value"); baseViewObject = dto as BaseViewObject; } if (baseViewObject != null) { var context = new ValidationContext(baseViewObject, serviceProvider: null, items: null); var results = new List <System.ComponentModel.DataAnnotations.ValidationResult>(); var isValid = Validator.TryValidateObject(baseViewObject, context, results); if (!isValid) { baseViewObject.IsValid = isValid; ErrorText = results[0].ErrorMessage; } } } if (textField?.Text.Length > 0 && (_textContentChanged)) { DataFieldEventArgs ev = new DataFieldEventArgs(DataFieldChangedEvent) { FieldData = textField.Text }; var valueDictionary = InitValueDictionary(textField.Text, DataObject); ev.ChangedValuesObjects = valueDictionary; if (ItemChangedCommand != null) { if (ItemChangedCommand.CanExecute(valueDictionary)) { ItemChangedCommand.Execute(valueDictionary); } } else { RaiseEvent(ev); } _textContentChanged = false; } }
private void PhoneTextBox_LostFocus(object sender, RoutedEventArgs e) { if (textChanged) { ComponentUtils.SetPropValue(DataObject, Phone, _phoneTextBox.Text); IDictionary <string, object> valueDictionary = new Dictionary <string, object> { [DATAOBJECT] = DataObject, [CHANGED_VALUE] = _phoneTextBox.Text }; if (ItemChangedCommand != null) { if (ItemChangedCommand.CanExecute(valueDictionary)) { ItemChangedCommand.Execute(valueDictionary); } } textChanged = false; } }
private void ChangedValue(string path, string value) { if (textChanged) { ComponentUtils.SetPropValue(DataObject, path, value); IDictionary <string, object> valueDictionary = new Dictionary <string, object> { [DATAOBJECT] = DataObject, [CHANGED_VALUE] = value, ["Field"] = path }; if (ItemChangedCommand != null) { if (ItemChangedCommand.CanExecute(valueDictionary)) { ItemChangedCommand.Execute(valueDictionary); } } textChanged = false; } }