93 lines
2.9 KiB
C#
93 lines
2.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Windows.Input;
|
|
using Avalonia.Media;
|
|
using Avalonia.Media.Imaging;
|
|
using Avalonia.Platform;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using ZTools.Models;
|
|
using ZTools.Views;
|
|
|
|
namespace ZTools.ViewModels;
|
|
|
|
public partial class MainWindowItem : ObservableObject
|
|
{
|
|
private string itemIconName;
|
|
[ObservableProperty] private Bitmap itemIcon;
|
|
[ObservableProperty] private string itemName;
|
|
|
|
public MainWindowItem(string itemIcon, string itemName)
|
|
{
|
|
this.itemIconName = itemIcon;
|
|
var uri = itemIconName;
|
|
var bitmap = new Bitmap(AssetLoader.Open(new Uri(uri)));
|
|
this.itemIcon = bitmap;
|
|
this.itemName = itemName;
|
|
}
|
|
}
|
|
|
|
public partial class MainWindowViewModel : ViewModelBase
|
|
{
|
|
[ObservableProperty]
|
|
private ObservableCollection<MainWindowItem> _menuItems = new ObservableCollection<MainWindowItem>()
|
|
{
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/个人.png","个人"),
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/首页.png","首页"),
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/消息.png","消息"),
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/功能.png","功能"),
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/其他.png","其他"),
|
|
};
|
|
private MainWindowItem selectedMenuItem;
|
|
public MainWindowItem SelectedMenuItem
|
|
{
|
|
get => selectedMenuItem;
|
|
set
|
|
{
|
|
selectedMenuItem = value;
|
|
// this.RaiseAndSetIfChanged(ref selectedMenuItem, value);
|
|
OnSelectedItemChanged();
|
|
}
|
|
}
|
|
private void OnSelectedItemChanged()
|
|
{
|
|
if (selectedMenuItem!= null)
|
|
{
|
|
Log.Debug($"Selected item in ViewModel: {selectedMenuItem.ItemName}");
|
|
switch (selectedMenuItem.ItemName)
|
|
{
|
|
case "个人":
|
|
new SettingWindow().Show();
|
|
break;
|
|
case "首页":
|
|
new SettingWindow().Show();
|
|
break;
|
|
case "消息":
|
|
new SettingWindow().Show();
|
|
break;
|
|
case "功能":
|
|
new SettingWindow().Show();
|
|
break;
|
|
case "其他":
|
|
new SettingWindow().Show();
|
|
break;
|
|
case "设置":
|
|
new SettingWindow().Show();
|
|
break;
|
|
default:
|
|
throw new NullReferenceException();
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Log.Debug("No item selected in ViewModel");
|
|
}
|
|
}
|
|
|
|
[ObservableProperty]
|
|
private ObservableCollection<MainWindowItem> _leftDownItems = new ObservableCollection<MainWindowItem>()
|
|
{
|
|
new MainWindowItem("avares://ZTools/Assets/Menu/设置.png","设置"),
|
|
};
|
|
} |