diff --git a/demo/Semi.Avalonia.Demo/App.axaml b/demo/Semi.Avalonia.Demo/App.axaml
index c22351e..605631b 100644
--- a/demo/Semi.Avalonia.Demo/App.axaml
+++ b/demo/Semi.Avalonia.Demo/App.axaml
@@ -20,6 +20,14 @@
+
+
+
+
+
-
+
+
diff --git a/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs
index b91a492..0655629 100644
--- a/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs
+++ b/demo/Semi.Avalonia.Demo/ViewModels/ApplicationViewModel.cs
@@ -2,11 +2,18 @@ using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
+using CommunityToolkit.Mvvm.Messaging;
namespace Semi.Avalonia.Demo.ViewModels;
public partial class ApplicationViewModel : ObservableObject
{
+ [RelayCommand]
+ private void JumpTo(string header)
+ {
+ WeakReferenceMessenger.Default.Send(header, "JumpTo");
+ }
+
[RelayCommand]
private void Exit()
{
diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml.cs b/demo/Semi.Avalonia.Demo/Views/MainView.axaml.cs
index 1d0a78d..fbc876b 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml.cs
@@ -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(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? Items { get; set; }
-}
+}
\ No newline at end of file