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;
}
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;
}