Ejemplo n.º 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;
     }
 }
Ejemplo n.º 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;
            }
        }
Ejemplo n.º 3
0
 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;
     }
 }
Ejemplo n.º 4
0
 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;
     }
 }