コード例 #1
0
        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)));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 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);
 }