Final (я надеюсь) следовать до this вопроса -Связать свойство управления с пользовательской настройкой, привязанной к другому свойству?
Я хочу, чтобы связать свойство цвета этого пользователя Control к свойству Настройки пользователя, которые будут распространять на несколько других элементы управления.
Я сделал это в коде (XAML, если быть точным), но изменения, внесенные в User Control, не распространяются на элемент управления, который должен их получать.
В прошлом я видел эту работу (с простым слайдером, контролирующим ширину границы): Однако это не работает. Вот вопрос XAML.
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:S="clr-namespace:EQLControls.Properties"
xmlns:Components="clr-namespace:WPFTools.Components;assembly=WPFTools"
xmlns:Converters="clr-namespace:WPFTools.Classes.Converters;assembly=WPFTools"
x:Class="EQLControls.Controls.UCPlayerPanel"
mc:Ignorable="d"
BorderThickness="{Binding PlayerBorderSize}"
FontFamily="{Binding PlayerFontFamily}"
FontWeight="{Binding PlayerFontWeight}"
Height="50" Width="100">
<UserControl.Background>
<LinearGradientBrush EndPoint="1,1" StartPoint="0,0">
<GradientStop Color="{Binding PlayerBGColor1}"/>
<GradientStop Color="{Binding PlayerBGColor2}" Offset="1"/>
</LinearGradientBrush>
</UserControl.Background>
<UserControl.BorderBrush>
<SolidColorBrush Color="{Binding PlayerBorderColor}"/>
</UserControl.BorderBrush>
<UserControl.DataContext>
<S:Settings/>
</UserControl.DataContext>
У меня есть элемент управления, связанный контролировать PlayerBGColor1 и PlayerBGColor2 из настроек (связывание Двухсторонний) в проекте, но изменения не отражают (мгновенно, во всяком случае) против пользовательского элемента управления, который должен получить те изменяется от элемента управления.
Это XAML для привязки для элементов управления, которые должны обрабатывать цвета PlayerBG1 и PlayerBG2 в UserSettings:
<Controls:ColorDefiner Color="{Binding PlayerBGColor2, Mode=TwoWay}" Width="Auto" Height="Auto"/>
<Controls:ColorDefiner Color="{Binding PlayerBGColor1, Mode=TwoWay}" Width="Auto" Height="Auto"/>
Это то, что я пытаюсь достичь возможно здесь, или мне нужно найти другой способ сделать это?
У обоих элементов управления есть один экземпляр DataContext? – jhenninger
Свойства 'PlayerBGColor1' и' PlayerBGColor2' сообщают об изменениях, т. Е. Они поднимают событие PropertyChanged? – Clemens
@ jhenninger24 Они делают - они являются частью класса, который наследует класс ApplicationSettingsBase. – Will