using Avalonia.Controls; using Avalonia.Media; using Avalonia.Threading; using Mlaumcherb.Client.Avalonia.классы; namespace Mlaumcherb.Client.Avalonia.зримое; public partial class VersionItemView : ListBoxItem { public GameVersionProps Props { get; } private SolidColorBrush _avaliableColor = new(Color.FromRgb(30, 130, 40)); private SolidColorBrush _unavaliableColor = new(Color.FromRgb(170, 70, 70)); public VersionItemView() { throw new Exception(); } public VersionItemView(GameVersionProps props) { Props = props; InitializeComponent(); text.Text = props.Name; props.StatusChanged += UpdateBackground; UpdateBackground(props.IsDownloaded); } private void UpdateBackground(bool isDownloaded) { Dispatcher.UIThread.Invoke(() => Background = isDownloaded ? _avaliableColor : _unavaliableColor ); } }