test: add headless test for canselect handling.

This commit is contained in:
rabbitism
2025-07-11 11:26:05 +08:00
parent fb9f03d63b
commit cbf88a1aea
5 changed files with 194 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
using System.Collections.ObjectModel;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using CommunityToolkit.Mvvm.ComponentModel;
using Ursa.Controls;
namespace HeadlessTest.Ursa.Controls.NavMenuTests.CanSelectTests;
public partial class TestView2 : UserControl
{
public TestView2()
{
InitializeComponent();
this.DataContext = new TestView2ViewModel();
}
private void NavMenu_OnSelectionChanging(object? sender, SelectionChangingEventArgs e)
{
if (e.NewItems is [MenuItemViewModel item])
{
if (item.Text.Contains("2"))
{
e.CanSelect = false;
}
}
}
}
public partial class TestView2ViewModel
{
public ObservableCollection<MenuItemViewModel> MenuItems { get; } = new()
{
new MenuItemViewModel { Text = "Menu Item 1" },
new MenuItemViewModel { Text = "Menu Item 2" },
new MenuItemViewModel { Text = "Menu Item 3" }
};
}
public partial class MenuItemViewModel: ObservableObject
{
[ObservableProperty] private string? _text;
}