Files
downkyicore/DownKyi/ViewModels/PageViewModels/ToViewMedia.cs
2024-04-24 09:20:52 +08:00

120 lines
2.5 KiB
C#

using Avalonia.Media.Imaging;
using DownKyi.Core.BiliApi.BiliUtils;
using DownKyi.Utils;
using Prism.Commands;
using Prism.Events;
using Prism.Mvvm;
namespace DownKyi.ViewModels.PageViewModels;
public class ToViewMedia : BindableBase
{
protected readonly IEventAggregator eventAggregator;
public ToViewMedia(IEventAggregator eventAggregator)
{
this.eventAggregator = eventAggregator;
}
// aid
public long Aid { get; set; }
// bvid
public string Bvid { get; set; }
// UP主的mid
public long UpMid { get; set; }
#region
// 是否选中
private bool isSelected;
public bool IsSelected
{
get => isSelected;
set => SetProperty(ref isSelected, value);
}
// 封面
private Bitmap cover;
public Bitmap Cover
{
get => cover;
set => SetProperty(ref cover, value);
}
// 视频标题
private string title;
public string Title
{
get => title;
set => SetProperty(ref title, value);
}
// UP主的昵称
private string upName;
public string UpName
{
get => upName;
set => SetProperty(ref upName, value);
}
// UP主的头像
private Bitmap upHeader;
public Bitmap UpHeader
{
get => upHeader;
set => SetProperty(ref upHeader, value);
}
#endregion
#region
// 视频标题点击事件
private DelegateCommand<object> titleCommand;
public DelegateCommand<object> TitleCommand =>
titleCommand ?? (titleCommand = new DelegateCommand<object>(ExecuteTitleCommand));
/// <summary>
/// 视频标题点击事件
/// </summary>
/// <param name="parameter"></param>
private void ExecuteTitleCommand(object parameter)
{
if (parameter is not string tag)
{
return;
}
NavigateToView.NavigationView(eventAggregator, ViewVideoDetailViewModel.Tag, tag, $"{ParseEntrance.VideoUrl}{Bvid}");
}
// UP主头像点击事件
private DelegateCommand<object> upCommand;
public DelegateCommand<object> UpCommand =>
upCommand ?? (upCommand = new DelegateCommand<object>(ExecuteUpCommand));
/// <summary>
/// UP主头像点击事件
/// </summary>
/// <param name="parameter"></param>
private void ExecuteUpCommand(object parameter)
{
if (!(parameter is string tag))
{
return;
}
// NavigateToView.NavigateToViewUserSpace(eventAggregator, tag, UpMid);
}
#endregion
}