XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEToolBox

【WPF】XFE工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
using System.Windows.Media;
using CommunityToolkit.Mvvm.ComponentModel;
using XFEToolBox.Core.Downloads;

namespace XFEToolBox.Client.ViewModel.Pages;

public partial class SoftwareCardViewModel(SoftwareCatalogItem software, ImageSource iconSource) : ObservableObject
{
    private int _iconLoadStarted;

    public SoftwareCatalogItem Software { get; } = software;

    public string Id => Software.Id;
    public string Name => Software.Name;
    public string Summary => Software.Summary;
    public string Publisher => Software.Publisher;
    public string Category => Software.Category;
    public string Version => Software.Version;
    public string DownloadModeText => Software.DownloadMode == SoftwareDownloadMode.Direct ? "直接下载" : "官方页面";

    [ObservableProperty]
    private ImageSource iconSource = iconSource;

    public bool TryBeginIconLoad() => Interlocked.Exchange(ref _iconLoadStarted, 1) == 0;
}