/// <summary> /// Creates an <see cref="ObservableValue{T}"/> available via data binding from any page, /// affected by a source observable. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="name"></param> /// <param name="inputObservableSelector"></param> /// <param name="initialValue"></param> /// <returns></returns> public static ObservableValue <T> CreateGlobalProperty <T>(string name, Func <IObservable <T> > inputObservableSelector, T initialValue = default(T)) { var observableValue = new ObservableValue <T>(initialValue); BaseViewModel.AddGlobalProperty <T>(name, observableValue); observableValue.AddInput(inputObservableSelector()); return(observableValue); }
/// <summary> /// Creates a command available via data binding from any page. /// </summary> /// <param name="name"></param> /// <param name="asyncExecute"></param> /// <param name="canExecuteObservable"></param> public static void CreateGlobalCommand(string name, Func <CancellationToken, Task> asyncExecute, IObservable <bool> canExecuteObservable) { var observableValue = new ObservableValue <IAsyncCommand>(new AsyncCommand(asyncExecute, canExecuteObservable)); BaseViewModel.AddGlobalProperty <IAsyncCommand>(name, observableValue); }