feat: move to menu.
This commit is contained in:
6
demo/Ursa.Demo/ViewModels/BadgeDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/BadgeDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class BadgeDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
6
demo/Ursa.Demo/ViewModels/BannerDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/BannerDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class BannerDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
@@ -2,9 +2,9 @@ using System.Collections.ObjectModel;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class ButtonGroupViewModel: ViewModelBase
|
||||
public class ButtonGroupDemoViewModel: ViewModelBase
|
||||
{
|
||||
public ObservableCollection<string> Items { get; set; } = new ObservableCollection<string>()
|
||||
public ObservableCollection<string> Items { get; set; } = new ()
|
||||
{
|
||||
"Ding", "Otter", "Husky", "Mr. 17", "Cass"
|
||||
};
|
||||
6
demo/Ursa.Demo/ViewModels/DividerDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/DividerDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class DividerDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
6
demo/Ursa.Demo/ViewModels/IPv4BoxDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/IPv4BoxDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class IPv4BoxDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
6
demo/Ursa.Demo/ViewModels/LoadingDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/LoadingDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class LoadingDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,6 +1,40 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class MainWindowViewModel : ViewModelBase
|
||||
{
|
||||
public string Greeting => "Welcome to Avalonia!";
|
||||
public MenuViewModel Menus { get; set; } = new MenuViewModel();
|
||||
|
||||
private object? _content;
|
||||
public object? Content
|
||||
{
|
||||
get => _content;
|
||||
set => SetProperty(ref _content, value);
|
||||
}
|
||||
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
WeakReferenceMessenger.Default.Register<MainWindowViewModel, string>(this, OnNavigation);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void OnNavigation(MainWindowViewModel vm, string s)
|
||||
{
|
||||
Content = s switch
|
||||
{
|
||||
MenuKeys.MenuKeyBadge => new BadgeDemoViewModel(),
|
||||
MenuKeys.MenuKeyBanner => new BannerDemoViewModel(),
|
||||
MenuKeys.MenuKeyButtonGroup => new ButtonGroupDemoViewModel(),
|
||||
MenuKeys.MenuKeyDivider => new DividerDemoViewModel(),
|
||||
MenuKeys.MenuKeyIpBox => new IPv4BoxDemoViewModel(),
|
||||
MenuKeys.MenuKeyLoading => new LoadingDemoViewModel(),
|
||||
MenuKeys.MenuKeyNavigation => new NavigationMenuDemoViewModel(),
|
||||
MenuKeys.MenuKeyPagination => new PaginationDemoViewModel(),
|
||||
MenuKeys.MenuKeyTagInput => new TagInputDemoViewModel(),
|
||||
MenuKeys.MenuKeyTimeline => new TimelineDemoViewModel(),
|
||||
};
|
||||
}
|
||||
}
|
||||
29
demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs
Normal file
29
demo/Ursa.Demo/ViewModels/MenuItemViewModel.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Input;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class MenuItemViewModel: ViewModelBase
|
||||
{
|
||||
public string MenuHeader { get; set; }
|
||||
public string MenuIconName { get; set; }
|
||||
public string Key { get; set; }
|
||||
|
||||
public bool IsSeparator { get; set; }
|
||||
public ObservableCollection<MenuItemViewModel> Children { get; set; } = new();
|
||||
|
||||
public ICommand ActivateCommand { get; set; }
|
||||
|
||||
public MenuItemViewModel()
|
||||
{
|
||||
ActivateCommand = new RelayCommand(OnActivate);
|
||||
}
|
||||
|
||||
private void OnActivate()
|
||||
{
|
||||
if (IsSeparator) return;
|
||||
WeakReferenceMessenger.Default.Send<string>(Key);
|
||||
}
|
||||
}
|
||||
26
demo/Ursa.Demo/ViewModels/MenuViewModel.cs
Normal file
26
demo/Ursa.Demo/ViewModels/MenuViewModel.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System.Collections.ObjectModel;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class MenuViewModel: ViewModelBase
|
||||
{
|
||||
public ObservableCollection<MenuItemViewModel> MenuItems { get; set; }
|
||||
|
||||
public MenuViewModel()
|
||||
{
|
||||
MenuItems = new ObservableCollection<MenuItemViewModel>()
|
||||
{
|
||||
new() { MenuHeader = "Controls", IsSeparator = true },
|
||||
new() { MenuHeader = "Badge", Key = MenuKeys.MenuKeyBadge },
|
||||
new() { MenuHeader = "Banner", Key = MenuKeys.MenuKeyBanner },
|
||||
new() { MenuHeader = "ButtonGroup", Key = MenuKeys.MenuKeyButtonGroup },
|
||||
new() { MenuHeader = "Divider", Key = MenuKeys.MenuKeyDivider },
|
||||
new() { MenuHeader = "IPv4Box", Key = MenuKeys.MenuKeyIpBox },
|
||||
new() { MenuHeader = "Loading", Key = MenuKeys.MenuKeyLoading },
|
||||
new() { MenuHeader = "Navigation", Key = MenuKeys.MenuKeyNavigation },
|
||||
new() { MenuHeader = "Pagination", Key = MenuKeys.MenuKeyPagination },
|
||||
new() { MenuHeader = "TagInput", Key = MenuKeys.MenuKeyTagInput },
|
||||
new() { MenuHeader = "Timeline", Key = MenuKeys.MenuKeyTimeline },
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -5,18 +5,18 @@ namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class NavigationMenuDemoViewModel: ObservableObject
|
||||
{
|
||||
public ObservableCollection<NavigationMenuItemViewModel> MenuItems { get; set; } = new()
|
||||
public ObservableCollection<MenuItemViewModel> MenuItems { get; set; } = new()
|
||||
{
|
||||
new NavigationMenuItemViewModel()
|
||||
new MenuItemViewModel()
|
||||
{
|
||||
MenuHeader = "任务管理",
|
||||
MenuIconName = "User",
|
||||
Children = new ObservableCollection<NavigationMenuItemViewModel>()
|
||||
Children = new ObservableCollection<MenuItemViewModel>()
|
||||
{
|
||||
new (){
|
||||
MenuHeader = "公告管理" ,
|
||||
MenuIconName = "Star",
|
||||
Children = new ObservableCollection<NavigationMenuItemViewModel>()
|
||||
Children = new ObservableCollection<MenuItemViewModel>()
|
||||
{
|
||||
new () {MenuHeader = "公告设置"},
|
||||
new () {MenuHeader = "公告处理"}
|
||||
@@ -24,16 +24,16 @@ public class NavigationMenuDemoViewModel: ObservableObject
|
||||
new (){MenuHeader = "任务查询"}
|
||||
}
|
||||
},
|
||||
new NavigationMenuItemViewModel()
|
||||
new MenuItemViewModel()
|
||||
{
|
||||
MenuHeader = "附加功能",
|
||||
IsSeparator = true,
|
||||
},
|
||||
new NavigationMenuItemViewModel()
|
||||
new MenuItemViewModel()
|
||||
{
|
||||
MenuHeader = "任务平台",
|
||||
MenuIconName = "Gear",
|
||||
Children = new ObservableCollection<NavigationMenuItemViewModel>()
|
||||
Children = new ObservableCollection<MenuItemViewModel>()
|
||||
{
|
||||
new (){MenuHeader = "任务管理"},
|
||||
new (){MenuHeader = "用户任务查询"}
|
||||
@@ -42,11 +42,3 @@ public class NavigationMenuDemoViewModel: ObservableObject
|
||||
};
|
||||
}
|
||||
|
||||
public class NavigationMenuItemViewModel: ObservableObject
|
||||
{
|
||||
public string MenuHeader { get; set; }
|
||||
public string MenuIconName { get; set; }
|
||||
|
||||
public bool IsSeparator { get; set; }
|
||||
public ObservableCollection<NavigationMenuItemViewModel> Children { get; set; } = new();
|
||||
}
|
||||
@@ -5,7 +5,7 @@ using CommunityToolkit.Mvvm.ComponentModel;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class PaginationDemoViewModel: ObservableObject
|
||||
public class PaginationDemoViewModel: ViewModelBase
|
||||
{
|
||||
public AvaloniaList<int> PageSizes { get; set; } = new() { 10, 20, 50, 100 };
|
||||
}
|
||||
6
demo/Ursa.Demo/ViewModels/TagInputDemoViewModel.cs
Normal file
6
demo/Ursa.Demo/ViewModels/TagInputDemoViewModel.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class TagInputDemoViewModel: ViewModelBase
|
||||
{
|
||||
|
||||
}
|
||||
@@ -4,7 +4,7 @@ using Ursa.Controls;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public class TimelineDemoViewModel: ObservableObject
|
||||
public class TimelineDemoViewModel: ViewModelBase
|
||||
{
|
||||
public TimelineItemViewModel[] Items { get; } =
|
||||
{
|
||||
@@ -46,62 +46,6 @@ public class TimelineDemoViewModel: ObservableObject
|
||||
Description = "Item 5",
|
||||
Content = "Content 5"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 6",
|
||||
Content = "Content 6"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 7",
|
||||
Content = "Content 71231"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 8",
|
||||
Content = "Content 8123123"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 9",
|
||||
Content = "Content 9123123"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 10",
|
||||
Content = "Content 1231231231231231231230"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 11",
|
||||
Content = "Content 11231231"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 12",
|
||||
Content = "Content 12123123123123"
|
||||
},
|
||||
new()
|
||||
{
|
||||
Time = DateTime.Now,
|
||||
TimeFormat = "HH:mm:ss",
|
||||
Description = "Item 13",
|
||||
Content = "Last"
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user