public void SetDisplayValue(IBehaviorContext vm, object value)
        {
            Check.NotNull(vm, nameof(vm));

            IValueAccessorBehavior <TValue> accessBehavior =
                GetNextBehavior <IValueAccessorBehavior <TValue> >();

            //ChangeValueRequest<TValue> request = value as ChangeValueRequest<TValue>;
            //if (request != null) {
            //   ConversionResult<TValue> result = request.Converter.ConvertBack(request.NewValue);
            //   if (result.Successful) {
            //      vm.FieldValues.ClearField(_conversionErrorField);
            //      accessBehavior.SetValue(vm, result.Value);
            //   } else {
            //      vm.FieldValues.SetValue(_conversionErrorField, result.ErrorMessage);
            //      return;
            //   }
            //} else {
            // TODO: Tidy up this if...
            if (value is TValue || (value == null && TypeService.CanAssignNull(typeof(TValue))))
            {
                accessBehavior.SetValue(vm, (TValue)value);
            }
            else
            {
                throw new ArgumentException(
                          ExceptionTexts.DisplayValueHasWrongType.FormatWith(
                              _propertyName, typeof(TValue).Name, value
                              ),
                          "value"
                          );
            }
            //}
        }
 public PopulatedCollectionPropertyBuilder(
     ICustomPropertyFactory <TSourceObject> factory,
     IValueAccessorBehavior <IEnumerable <TItemVM> > sourceCollectionAccessor
     )
 {
     _factory = factory;
     _sourceCollectionAccessor = sourceCollectionAccessor;
 }
 public ViewModelPropertyBuilderWithSource(
     ICustomPropertyFactory <TSourceObject> factory,
     IValueAccessorBehavior <TSourceValue> sourceValueAccessor
     )
 {
     _sourceValueAccessor = sourceValueAccessor;
     _factory             = factory;
 }
        public object GetDisplayValue(IBehaviorContext vm)
        {
            Check.NotNull(vm, nameof(vm));

            IValueAccessorBehavior <TValue> accessBehavior =
                GetNextBehavior <IValueAccessorBehavior <TValue> >();

            return(accessBehavior.GetValue(vm));
        }
 public CollectionPropertyBuilderWithSource(
     ICustomPropertyFactory <TSourceObject> factory,
     IValueAccessorBehavior <IEnumerable <TItemSource> > sourceCollectionAccessor,
     bool shouldCacheSourceCollection
     )
 {
     _sourceCollectionAccessor = sourceCollectionAccessor;
     _factory = factory;
     _shouldCacheSourceCollection = shouldCacheSourceCollection;
 }