Example #1
0
        protected void RaiseOnChange(object item)
        {
            INotifyPropertyChanged itemObject = item as INotifyPropertyChanged;

            if (itemObject != null)
            {
                itemObject.RaisePropertyChanged(_args.Column.Field);
            }
        }
Example #2
0
 public static void RaisePropertyChanged(this INotifyPropertyChanged sender, PropertyChangedEventHandler handler, params string[] propertyNames)
 {
     if (handler != null && propertyNames != null && propertyNames.Length > 0)
     {
         foreach (var propertyName in propertyNames)
         {
             sender.RaisePropertyChanged(handler, propertyName);
         }
     }
 }
        public static bool ViewModelSetValue <T>(this INotifyPropertyChanged viewModel, string propName, ref T currValue, T value, PropertyChangedEventHandler eventHandler)
        {
            if (Equals(currValue, value))
            {
                return(false);
            }

            currValue = value;
            viewModel.RaisePropertyChanged(propName, eventHandler);

            return(true);
        }
        public override void ApplyValue(Dictionary <string, object> item, object state)
        {
            OptionSetValue opt = (OptionSetValue)state;

            item[_args.Column.Field]          = opt;
            item[_args.Column.Field + "name"] = opt.Name;
            INotifyPropertyChanged itemObject = ((object)item) as INotifyPropertyChanged;

            if (itemObject != null)
            {
                itemObject.RaisePropertyChanged(_args.Column.Field);
            }
        }
Example #5
0
        private static void NotifyComputedPropertyIfChanged(this INotifyPropertyChanged source, string propertyName = default)
        {
            ConditionallyRegisterDependentInstance(source);

            var value  = Dynamic.GetPropertyOrFieldValue <INotifyPropertyChanged, object>(source, propertyName);
            var fields = Store.GetBackingFields(source);

            if (fields.TryGetValue(propertyName, out var current))
            {
                if (Equals(value, current))
                {
                    return;
                }
                fields[propertyName] = value;
                source.RaisePropertyChanged(current, value, propertyName);
                return;
            }
            else
            {
                fields[propertyName] = value;
                source.RaisePropertyChanged(propertyName);
            }
        }
Example #6
0
        internal static void SetFieldValue <T>(this INotifyPropertyChanged viewModel, T value, string propertyName)
        {
            var viewModelType = viewModel.GetType();

            var field    = viewModelType.Field(propertyName);
            var original = (T)field.GetValue(viewModel);

            if (EqualityComparer <T> .Default.Equals(value, original))
            {
                return;
            }

            field.SetValue(viewModel, value);

            viewModel.RaisePropertyChanged(propertyName);
        }
Example #7
0
        public static void SetProperty <TValue>(this INotifyPropertyChanged source, TValue value, [CallerMemberName] string propertyName = default)
        {
            ConditionallyRegisterDependentInstance(source);

            var fields = Store <TValue> .GetBackingFields(source);

            var current = fields.GetOrAdd(propertyName, default(TValue));

            if (EqualityComparer <TValue> .Default.Equals(value, current))
            {
                return;
            }

            if (source is INotifyPropertyChanging notifyChangingSource)
            {
                notifyChangingSource.RaisePropertyChanging(propertyName);
            }

            fields[propertyName] = value;
            source.RaisePropertyChanged(current, value, propertyName);
        }