feat: implement JumpTo command in ApplicationViewModel and update navigation handling. (#803)

This commit is contained in:
Zhang Dian
2025-10-23 14:58:22 +08:00
committed by GitHub
parent 7c7701aade
commit d495c98967
5 changed files with 30 additions and 10 deletions

View File

@@ -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");
}
}

View File

@@ -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<MainViewViewModel, string>(this, OnNavigation);
WeakReferenceMessenger.Default.Register<MainViewViewModel, string, string>(this, "JumpTo", OnNavigation);
OnNavigation(this, MenuKeys.MenuKeyIntroduction);
}

View File

@@ -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");
}
}