diff --git a/demo/Ursa.Demo/App.axaml b/demo/Ursa.Demo/App.axaml index 541947e..12000f0 100644 --- a/demo/Ursa.Demo/App.axaml +++ b/demo/Ursa.Demo/App.axaml @@ -5,7 +5,9 @@ xmlns:semi="https://irihi.tech/semi" xmlns:u-semi="https://irihi.tech/ursa/themes/semi" xmlns:u="https://irihi.tech/ursa" - xmlns:iri="https://irihi.tech/shared"> + xmlns:iri="https://irihi.tech/shared" + xmlns:vm="clr-namespace:Ursa.Demo.ViewModels" + x:DataType="vm:ApplicationViewModel"> @@ -18,4 +20,12 @@ + + + + + \ No newline at end of file diff --git a/demo/Ursa.Demo/App.axaml.cs b/demo/Ursa.Demo/App.axaml.cs index 92e928f..b0b5d06 100644 --- a/demo/Ursa.Demo/App.axaml.cs +++ b/demo/Ursa.Demo/App.axaml.cs @@ -12,6 +12,7 @@ public partial class App : Application public override void Initialize() { AvaloniaXamlLoader.Load(this); + DataContext = new ApplicationViewModel(); } public override void OnFrameworkInitializationCompleted() diff --git a/demo/Ursa.Demo/ViewModels/ApplicationViewModel.cs b/demo/Ursa.Demo/ViewModels/ApplicationViewModel.cs new file mode 100644 index 0000000..1f96383 --- /dev/null +++ b/demo/Ursa.Demo/ViewModels/ApplicationViewModel.cs @@ -0,0 +1,14 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using CommunityToolkit.Mvvm.Messaging; + +namespace Ursa.Demo.ViewModels; + +public partial class ApplicationViewModel : ObservableObject +{ + [RelayCommand] + private void JumpTo(string header) + { + WeakReferenceMessenger.Default.Send(header, "JumpTo"); + } +} \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs index a6396e3..9b7232f 100644 --- a/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MainViewViewModel.cs @@ -16,17 +16,12 @@ public partial class MainViewViewModel : ViewModelBase public WindowNotificationManager? NotificationManager { get; set; } public MenuViewModel Menus { get; set; } = new MenuViewModel(); - private object? _content; - - public object? Content - { - get => _content; - set => SetProperty(ref _content, value); - } + [ObservableProperty] private object? _content; public MainViewViewModel() { - WeakReferenceMessenger.Default.Register(this, OnNavigation); + WeakReferenceMessenger.Default.Register(this, "JumpTo", OnNavigation); + OnNavigation(this, MenuKeys.MenuKeyIntroduction); } diff --git a/demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs b/demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs index 04aa4d9..4f1e408 100644 --- a/demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs @@ -32,6 +32,6 @@ public class MenuItemViewModel: ViewModelBase private void OnActivate() { if (IsSeparator || Key is null) return; - WeakReferenceMessenger.Default.Send(Key); + WeakReferenceMessenger.Default.Send(Key, "JumpTo"); } } \ No newline at end of file