internal static ICommandBinding AddPropertyChangedHandler(this CommandBindingsCollection collection, Action handler, INotifyPropertyChanged source, params string[] propertyNames) { if (handler == null) { throw new ArgumentNullException(nameof(handler)); } if (propertyNames == null) { throw new ArgumentNullException(nameof(propertyNames)); } var state = new Dictionary <string, object> { [stateHandler] = handler, [statePropertyNames] = propertyNames }; return(collection.Add(propertyChangedCommand, state) .AddSource(source, nameof(source.PropertyChanged))); }
protected MvvmBaseForm(TViewModel viewModel) { // occurs in design mode but DesignMode is false for grandchild forms if (viewModel == null) { return; } ViewModel = viewModel; ViewModelBase vm = VM; vm.ShowInfoCallback = Dialogs.InfoMessage; vm.ShowWarningCallback = Dialogs.WarningMessage; vm.ShowErrorCallback = Dialogs.ErrorMessage; vm.ConfirmCallback = Dialogs.ConfirmMessage; vm.ShowChildViewCallback = ShowChildView; vm.CloseViewCallback = () => BeginInvoke(new Action(Close)); vm.SynchronizedInvokeCallback = InvokeIfRequired; CommandBindings = new WinformsCommandBindingsCollection(); }
internal static void AddTwoWayPropertyBinding(this CommandBindingsCollection collection, object source, string sourcePropertyName, object target, string targetPropertyName = null, Func <object, object> format = null, Func <object, object> parse = null) { collection.AddPropertyBinding(source, sourcePropertyName, targetPropertyName ?? sourcePropertyName, format, target); collection.AddPropertyBinding(target, targetPropertyName ?? sourcePropertyName, sourcePropertyName, parse, source); }