using System.Reactive.Linq; using System.Windows.Input; using Avalonia; using qmonlib.ui.ViewModels.Logs; using qmonlib.ui.ViewModels.Navigator; using qmonlib.ui.ViewModels.Settings; using ReactiveUI; namespace qmonlib.ui.ViewModels; public class MainViewModel : ReceiverViewModelBase { #region *** Sub-ViewModels *** public NavSearchViewModel NavSearch { get; private set; } = new(); public LogViewModel Log { get; private set; } = new(); #endregion; #region *** Commands *** public ICommand CommandShowSettings { get; } public Interaction SettingsShowDialog { get; } #endregion; #region *** Constructor *** public MainViewModel() { SettingsShowDialog = new Interaction(); CommandShowSettings = ReactiveCommand.CreateFromTask(async () => { var settings = new SettingsViewModel(); var result = await SettingsShowDialog.Handle(settings); Application.Current.Resources["Settings"] = settings; }); } #endregion }