Files
FT479/WPFWCSDemo/ViewModels/Settings/SettingViewModel.cs
2026-06-29 14:46:32 +08:00

72 lines
1.9 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Xml.Linq;
using WPFWCSDemo.Models;
using WPFWCSDemo.Utilities;
using WPFWCSDemo.ViewModels.Settings;
using WPFWCSDemo.Views.Settings;
namespace WPFWCSDemo.ViewModels
{
public partial class SettingViewModel : ObservableObject
{
private readonly Frame frame;
public SettingViewModel(Frame navigationFrame)
{
frame = navigationFrame;
Menu = new ObservableCollection<SettingMenu>();
CreateSettingMenu();
SkinViewModel.GetFrame(frame);
frame.Navigate(new Uri($"Views\\Settings\\SystemView.xaml", UriKind.Relative));
}
/// <summary>
/// 菜单选择项
/// </summary>
[ObservableProperty]
ObservableCollection<SettingMenu> _menu;
void CreateSettingMenu()
{
Menu.Add(new SettingMenu() { Icon = "Pencil", Title = "个性化", NameSpace = "SkinView"/*nameof(SkinView)*/ });
Menu.Add(new SettingMenu() { Icon = "Tools", Title = "系统设置", NameSpace = "SystemView" });
Menu.Add(new SettingMenu() { Icon = "ExclamationThick", Title = "关于", NameSpace = "AboutView" });
}
/// <summary>
/// 切换导航
/// </summary>
/// <param name="name"></param>
[RelayCommand]
void SettingNavigate(SettingMenu menu)
{
try
{
frame.Navigate(new Uri($"Views\\Settings\\{menu.NameSpace}.xaml", UriKind.Relative));
}
catch
{
}
}
}
}