MainViewModel.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Reactive.Linq;
  2. using System.Windows.Input;
  3. using Avalonia;
  4. using qmonlib.ui.ViewModels.Logs;
  5. using qmonlib.ui.ViewModels.Navigator;
  6. using qmonlib.ui.ViewModels.Settings;
  7. using ReactiveUI;
  8. namespace qmonlib.ui.ViewModels;
  9. public class MainViewModel : ReceiverViewModelBase
  10. {
  11. #region *** Sub-ViewModels ***
  12. public NavSearchViewModel NavSearch { get; private set; } = new();
  13. public LogViewModel Log { get; private set; } = new();
  14. #endregion;
  15. #region *** Commands ***
  16. public ICommand CommandShowSettings { get; }
  17. public Interaction<SettingsViewModel, MainViewModel?> SettingsShowDialog { get; }
  18. #endregion;
  19. #region *** Constructor ***
  20. public MainViewModel()
  21. {
  22. SettingsShowDialog = new Interaction<SettingsViewModel, MainViewModel?>();
  23. CommandShowSettings = ReactiveCommand.CreateFromTask(async () =>
  24. {
  25. var settings = new SettingsViewModel();
  26. var result = await SettingsShowDialog.Handle(settings);
  27. Application.Current.Resources["Settings"] = settings;
  28. });
  29. }
  30. #endregion
  31. }