C# 获取绑定以使用Popupcoloredit

C# 获取绑定以使用Popupcoloredit,c#,wpf,xaml,devexpress,C#,Wpf,Xaml,Devexpress,我正在尝试让colorpicker为我的程序工作,但我在重新初始化时无法保持该值。我想知道我是否遗漏了什么,或者popupcoloredit初始化是否覆盖了该值。在viewmodel初始化时,它保留了我拥有的字符串和布尔值,但是颜色在没有调用setter的情况下被重置,所以我认为它被破坏了 我的XAML如下所示: <TextBlock Text="{x:Static meta:MetaCommon.Text}" Style="{StaticResource ContentHeader}"

我正在尝试让colorpicker为我的程序工作,但我在重新初始化时无法保持该值。我想知道我是否遗漏了什么,或者popupcoloredit初始化是否覆盖了该值。在viewmodel初始化时,它保留了我拥有的字符串和布尔值,但是颜色在没有调用setter的情况下被重置,所以我认为它被破坏了

我的XAML如下所示:

<TextBlock Text="{x:Static meta:MetaCommon.Text}" Style="{StaticResource ContentHeader}" TextWrapping="Wrap" />
<dxe:PopupColorEdit Name="TextColour" Text="{Binding TextColour}" MinWidth="130" Margin="0,0,0,10" />

不要绑定到
PopupColorEdit.Text
。而且因为它是DevExpress,所以要时刻注意他们的习惯,即忽略在应该设置的依赖项属性上设置
bindstwayesbydefault=true
。这就是这样一种财产。默认情况下,
PopupColorEdit
Color
属性从不更新绑定到它的属性。这几乎是正确的,但这是他们附带的默认值

<dxe:PopupColorEdit 
    Name="TextColour" 
    Color="{Binding TextColour, Mode=TwoWay}" 
    MinWidth="130" 
    Margin="0,0,0,10" 
    />

最后,必须在viewmodel中正确实现
INotifyPropertyChanged
,并在
TextColour
的值更改时引发
PropertyChanged
,否则
TextBox
上的其他绑定将无法知道任何更改

你用的是什么颜色
System.Windows.Media.Color
,或
System.Drawing.Color
?@EdPlunkett尝试了两者。两者都不起作用。请参阅更新。很好,非常感谢!多种颜色的款式吸引了我,谢谢你的帮助。
public static Color TextColour { get; set; } 
<dxe:PopupColorEdit 
    Name="TextColour" 
    Color="{Binding TextColour, Mode=TwoWay}" 
    MinWidth="130" 
    Margin="0,0,0,10" 
    />
public static System.Windows.Media.Color TextColour { get; set; }