feat: add JumpTo functionality in ApplicationViewModel and integrate with menu.

This commit is contained in:
Zhang Dian
2025-09-28 18:02:09 +08:00
parent 5384de7b23
commit 9dd846f6be
3 changed files with 37 additions and 2 deletions

View File

@@ -9,6 +9,7 @@ using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Styling;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
namespace Semi.Avalonia.Demo.Views;
@@ -18,6 +19,19 @@ public partial class MainView : UserControl
{
InitializeComponent();
this.DataContext = new MainViewModel();
WeakReferenceMessenger.Default.Register<string, string>(this, "JumpTo", MessageHandler);
}
private void MessageHandler(object _, string message)
{
foreach (var item in tab.ItemsView)
{
if (item is TabItem tabItem && tabItem.Header is not null && tabItem.Header.Equals(message))
{
tab.SelectedItem = tabItem;
break;
}
}
}
}
@@ -233,4 +247,4 @@ public class MenuItemViewModel
public ICommand? Command { get; set; }
public object? CommandParameter { get; set; }
public IList<MenuItemViewModel>? Items { get; set; }
}
}