Beispiel #1
0
 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;
     }
 }
Beispiel #2
0
        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 DataField_LostFocus(object sender, RoutedEventArgs e)
 {
     if ((TextField.Text.Length > 0) && (textContentChanged))
     {
         DataFieldEventArgs ev = new DataFieldEventArgs(DataFieldChangedEvent);
         ev.FieldData = TextField.Text;
         IDictionary <string, object> valueDictionary = new Dictionary <string, object>();
         valueDictionary["Field"]         = DataSourcePath;
         valueDictionary["DataObject"]    = DataSource;
         valueDictionary["ChangedValue"]  = TextField.Text;
         valueDictionary["PreviousValue"] = _previousValue;
         ev.ChangedValuesObjects          = valueDictionary;
         RaiseEvent(ev);
     }
     textContentChanged = false;
 }