From 4e80af5c5305ad98335e8efe638971914a14bec3 Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Mon, 9 Jan 2023 14:06:06 -0700 Subject: [PATCH] Bind MyRatingCellEditor background color to the cell's background --- .../Controls/DataGridMyRatingColumn.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Source/LibationAvalonia/Controls/DataGridMyRatingColumn.cs b/Source/LibationAvalonia/Controls/DataGridMyRatingColumn.cs index 36df2d0c..3fefa38c 100644 --- a/Source/LibationAvalonia/Controls/DataGridMyRatingColumn.cs +++ b/Source/LibationAvalonia/Controls/DataGridMyRatingColumn.cs @@ -2,6 +2,9 @@ using Avalonia.Controls; using Avalonia.Interactivity; using DataLayer; +using LibationAvalonia.ViewModels; +using ReactiveUI; +using System; namespace LibationAvalonia.Controls { @@ -29,6 +32,21 @@ namespace LibationAvalonia.Controls myRatingElement.Bind(BindingTarget, Binding); } + void setControlBackground(object dataContext) + { + if (dataContext is GridEntry ge) + myRatingElement.Background = ge.BackgroundBrush; + } + + setControlBackground(cell?.DataContext); + + var subscriber = + cell + ?.ObservableForProperty(g => g.DataContext) + ?.Subscribe(ctx => setControlBackground(ctx?.Value)); + + myRatingElement.DetachedFromVisualTree += (_, _) => subscriber?.Dispose(); + return myRatingElement; }