private FullListenerRegister(Action <INotifyPropertyChanged> propertyOn, Action <INotifyPropertyChanged> propertyOff, Action <INotifyCollectionChanged> collectionOn, Action <INotifyCollectionChanged> collectionOff, Action <JsCommandBase> jsCommandOn, Action <JsCommandBase> jsCommandOff) { Property = new ListenerRegister <INotifyPropertyChanged>(propertyOn, propertyOff); Collection = new ListenerRegister <INotifyCollectionChanged>(collectionOn, collectionOff); Command = new ListenerRegister <JsCommandBase>(jsCommandOn, jsCommandOff); On = new ObjectChangesListener(Property.OnEnter, Collection.OnEnter, Command.OnEnter); Off = new ObjectChangesListener(Property.OnExit, Collection.OnExit, Command.OnExit); }
public ListenerUpdater(IJsUpdaterFactory jsUpdaterFactory) { _JsUpdaterFactory = jsUpdaterFactory; _JsUpdaterFactory.OnJavascriptSessionReady += _JsUpdaterFactory_OnJavascriptSessionReady; _Property = new ListenerRegister <INotifyPropertyChanged>(n => n.PropertyChanged += OnCSharpPropertyChanged, n => n.PropertyChanged -= OnCSharpPropertyChanged); _Collection = new ListenerRegister <INotifyCollectionChanged>(n => n.CollectionChanged += OnCSharpCollectionChanged, n => n.CollectionChanged -= OnCSharpCollectionChanged); var command = new ListenerRegister <ICommand>(c => c.CanExecuteChanged += OnCommandCanExecuteChanged, c => c.CanExecuteChanged -= OnCommandCanExecuteChanged); var updatableCommand = new ListenerRegister <IUpdatableCommand>(c => c.CanExecuteChanged += OnCommandCanExecuteChanged, c => c.CanExecuteChanged -= OnCommandCanExecuteChanged); On = new ObjectChangesListener(_Property.OnEnter, _Collection.OnEnter, command.OnEnter, updatableCommand.OnEnter); Off = new ObjectChangesListener(_Property.OnExit, _Collection.OnExit, command.OnExit, updatableCommand.OnExit); }