tesses-cms/Tesses.CMS.Avalonia/Tesses.CMS.Avalonia/ViewModels/HomePages/HomeUserPageViewModel.cs

59 lines
1.6 KiB
C#

namespace Tesses.CMS.Avalonia.ViewModels.HomePages;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Mvvm.Messaging;
using Tesses.CMS.Client;
public class UserPageItem
{
public UserPageItem(string name,ViewModelBase vmb)
{
Name = name;
Item = vmb;
}
public string Name {get;set;}
public ViewModelBase Item {get;set;}
}
public partial class HomeUserPageViewModel : ViewModelBase, IBackable
{
HomePageViewModel homePage;
HomeUserListPageViewModel userList;
UserAccount account;
public string Username => account.Username;
public string ProperName => account.ProperName;
public UserAccount Account => account;
[ObservableProperty]
private ObservableCollection<UserPageItem> _userItems=new ObservableCollection<UserPageItem>();
public HomeUserPageViewModel(HomePageViewModel homePage,HomeUserListPageViewModel userList, UserAccount account)
{
this.homePage = homePage;
this.userList = userList;
this.account = account;
UserItems.Add(new UserPageItem("Movies",new HomeMovieListPageViewModel(homePage,this)));
UserItems.Add(new UserPageItem("Shows",new HomeShowListPageViewModel(homePage,this)));
}
[ObservableProperty]
private UserPageItem? _selectedListItem;
partial void OnSelectedListItemChanged(UserPageItem? value)
{
if (value is null) return;
SelectedListItem=null;
homePage.CurrentPage = value.Item;
}
public ViewModelBase Back()
{
return userList;
}
}