/// <summary> /// Initializes a new instance of the <see cref="ValidationParameter"/> struct. /// </summary> /// <param name="propertyMetadata">The property metadata.</param> /// <param name="propertyInstance">The property instance.</param> /// <param name="propertyValue">The property value.</param> /// <param name="cancellationToken">The cancellation token.</param> public ValidationParameter(PropertyInfo propertyMetadata, IViewModelProperty propertyInstance, object propertyValue, CancellationToken cancellationToken) : this() { _propertyMetadata = propertyMetadata; _propertyInstance = propertyInstance; _propertyValue = propertyValue; _cancellationToken = cancellationToken; }
/// <summary> /// Set the targeted ViewModel /// </summary> public void SetViewModel(ViewModelInfo vm) { var type = vm.ViewModel.GetType(); Properties.Clear(); foreach (var prop in type.GetProperties().OrderBy(e => e.Name)) { IViewModelProperty property = null; if (prop.PropertyType == typeof(string)) { property = new StringViewModelProperty(vm.ViewModel, prop); } else if (prop.PropertyType == typeof(bool)) { property = new BoolViewModelProperty(vm.ViewModel, prop); } else if (prop.PropertyType == typeof(ICommand) || prop.PropertyType.GetInterfaces().Any(e => e == typeof(ICommand))) { property = new CommandViewModelProperty(vm.ViewModel, prop); } if (property == null) { property = new ObjectViewModelProperty(vm.ViewModel, prop); } property.ReadValue(); Properties.Add(property); } }
public static EqualToExpression EqualToProperty(IViewModelProperty property, IViewModelProperty valueProperty) { var leftValueProvider = new Func <object>(property.GetValue); var rightValueProvider = new Func <object>(valueProperty.GetValue); return(EqualToGeneric(leftValueProvider, rightValueProvider)); }
public static EqualToExpression EqualToLateValue(IViewModelProperty property, LateValue <object> lateValue) { var leftValueProvider = new Func <object>(property.GetValue); var rightValueProvider = new Func <object>(() => lateValue()); return(EqualToGeneric(leftValueProvider, rightValueProvider)); }
public static LessThanExpression LessThanLateValue(IViewModelProperty property, LateValue <object> lateValue) { var leftValueProvider = new Func <object>(property.GetValue); var rightValueProvider = new Func <object>(() => lateValue()); return(LessThanGeneric(leftValueProvider, rightValueProvider)); }
public static LessThanExpression LessThanProperty(IViewModelProperty property, IViewModelProperty valueProperty) { var leftValueProvider = new Func <object>(property.GetValue); var rightValueProvider = new Func <object>(valueProperty.GetValue); return(LessThanGeneric(leftValueProvider, rightValueProvider)); }
public static GreaterThanExpression GreaterThanValue(IViewModelProperty property, object value) { var leftValueProvider = new Func <object>(property.GetValue); var rightValueProvider = new Func <object>(() => value); return(GreaterThanGeneric(leftValueProvider, rightValueProvider)); }
protected override void OnCreateViewModelProperties() { FirstName = CreateValueProperty(Model.FirstName); LastName = CreateValueProperty(Model.LastName); PhoneNumber = CreateValueProperty(Model.PhoneNumber); Sex = CreateEnumProperty(Model.Sex); DateOfBirth = CreateValueProperty(Model.DateOfBirth); DateOfDeath = CreateValueProperty(Model.DateOfDeath); Email = CreateValueProperty(Model.Email); }
public static void OnSet(this IViewModelMutable @this, IViewModelProperty property, object value) { PropertyChange[] changes; { var list = new List <PropertyChange>(); var node = @this; var p = property; var v = value; while (node != null) { list.Add(new PropertyChange(node, p, v)); p = node.StateProperty; v = node; node = node.Parent; } list.Reverse(); changes = list.ToArray(); } var request = new ReduceRequest(changes); var root = (IViewModelRootMutable)(changes[0].ViewModel); root.ReduceCommand.Execute(request); }
/// <summary> /// Register the view model property so that it can participate in refreshing command procedure. /// </summary> private void RegisterViewModelProperty(IViewModelProperty property) { _registeredProperties.Add(property); }
public static CustomValidationExpression CustomValidation(IViewModelProperty property, CustomValidator <object> customValidator) { var leftValueProvider = new Func <object>(property.GetValue); return(new CustomValidationExpression(leftValueProvider, customValidator)); }
public static MatchingExpression MatchingProperty(IViewModelProperty property, string pattern) { var evaluatedValueProvider = new Func <object>(property.GetValue); return(MatchingGeneric(evaluatedValueProvider, pattern)); }
/// <summary>Record Constructor</summary> /// <param name="viewModel"><see cref="ViewModel"/></param> /// <param name="property"><see cref="Property"/></param> /// <param name="oldValue"><see cref="OldValue"/></param> /// <param name="newValue"><see cref="NewValue"/></param> public PropertyChange(IViewModelMutable viewModel, IViewModelProperty property, object newValue) { ViewModel = viewModel; Property = property; NewValue = newValue; }