You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
downkyi/DownKyi/ViewModels/PageViewModels/HistoryMedia.cs

176 lines
4.5 KiB

using DownKyi.Images;
using DownKyi.Utils;
using Prism.Commands;
using Prism.Events;
using Prism.Mvvm;
using System.Windows;
using System.Windows.Media.Imaging;
namespace DownKyi.ViewModels.PageViewModels
{
public class HistoryMedia : BindableBase
{
protected readonly IEventAggregator eventAggregator;
public HistoryMedia(IEventAggregator eventAggregator)
{
this.eventAggregator = eventAggregator;
}
// bvid
public string Bvid { get; set; }
// 播放url
public string Url { get; set; }
// UP主的mid
public long UpMid { get; set; }
// 类型
public string Business { get; set; }
#region 页面属性申明
// 是否选中
private bool isSelected;
public bool IsSelected
{
get => isSelected;
set => SetProperty(ref isSelected, value);
}
// 封面
private BitmapImage cover;
public BitmapImage Cover
{
get => cover;
set => SetProperty(ref cover, value);
}
// 视频标题
private string title;
public string Title
{
get => title;
set => SetProperty(ref title, value);
}
// 分P的标题
private string subTitle;
public string SubTitle
{
get => subTitle;
set => SetProperty(ref subTitle, value);
}
// 时长
private long duration;
public long Duration
{
get => duration;
set => SetProperty(ref duration, value);
}
// tag标签
private string tagName;
public string TagName
{
get => tagName;
set => SetProperty(ref tagName, value);
}
// new_desc 剧集或分P描述
private string partdesc;
public string Partdesc
{
get => partdesc;
set => SetProperty(ref partdesc, value);
}
// 观看进度
private string progress;
public string Progress
{
get => progress;
set => SetProperty(ref progress, value);
}
// 观看平台
private VectorImage platform;
public VectorImage Platform
{
get => platform;
set => SetProperty(ref platform, value);
}
// UP主的昵称
private string upName;
public string UpName
{
get => upName;
set => SetProperty(ref upName, value);
}
// UP主的头像
private BitmapImage upHeader;
public BitmapImage UpHeader
{
get => upHeader;
set => SetProperty(ref upHeader, value);
}
// 是否显示Partdesc
private Visibility partdescVisibility;
public Visibility PartdescVisibility
{
get => partdescVisibility;
set => SetProperty(ref partdescVisibility, value);
}
// 是否显示UP主信息和分区信息
private Visibility upAndTagVisibility;
public Visibility UpAndTagVisibility
{
get => upAndTagVisibility;
set => SetProperty(ref upAndTagVisibility, 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 string tag)) { return; }
NavigateToView.NavigationView(eventAggregator, ViewVideoDetailViewModel.Tag, tag, Url);
}
// 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
}
}