Я пытаюсь сделать цветовую схему моего приложения динамической, чтобы у меня было значение цвета в свойстве (возможно, исходя из базы данных), которое определяет цветовую схему моего приложения.
У меня есть файл Resources.xaml, в котором я устанавливаю свои цвета и стили для приложения, которые я затем использую во всех своих элементах управления и окнах. Я хотел бы связать Цвет SolidColorBrush в файле ресурсов со свойством в моих ViewModel, чтобы этот цвет мог меняться в зависимости от текущего значения приложения. Вот то, что у меня есть, но оно не работает, поэтому я что-то упускаю.
Код в файле Resources.xaml:
<SolidColorBrush x:Key="ApplicationMainBackgroundBrush" Color="{Binding Path=MainApplicationColor, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ApplicationArchitecture:ViewModelBase}, Mode=FindAncestor}, FallbackValue=CornflowerBlue}"/>
Код в файле MainWindow.xaml:
<Grid Grid.Row="0" x:Name="gridControl" Background="{DynamicResource ApplicationMainBackgroundBrush}">
DataContext моего MainWindow.xaml - это класс ApplicationViewModel, который наследуется от ViewModelBase, у которого есть свойство "MainApplicationColor", возвращающее строку "Teal", чтобы изменить цвет этого SolidColorBrush из его FallbackValue. Сейчас я жестко программирую цвет, но именно здесь я хотел бы получить свою ценность из базы данных в будущем. Цвет в настоящее время не меняется, поэтому я предполагаю, что в моем источнике привязки что-то не так, поскольку он явно не работает так, как мне кажется.
Спасибо
Клара