使用户能够替换/覆盖UserControl中的DependencyProperty

时间:2018-03-08 08:12:26

标签: c# wpf xaml

我有一个UserControl DependencyProperty定义如下:

public static readonly DependencyProperty DistanceTextProperty = DependencyProperty.Register(
    nameof(DistanceText), typeof(string), typeof(MyControl), new PropertyMetadata(default(string)));

public string DistanceText
{
    get { return (string)GetValue(DistanceTextProperty); }
    set { SetValue(DistanceTextProperty, value); }
}

UserControl后面的某个地方,我像这样设置DependencyProperty的值:

DistanceText = Math.Round((To - From).Length, 1).ToString(CultureInfo.InvariantCulture);

当我使用此UserControl时,我想使用DistanceTextXAML中手动设置Binding属性,如下所示:

<views:MyControl DistanceText="{Binding MyCustomDistanceText}"/>

但是,由于此DependencyProperty已在我的UserControl中进行了本地设置,因此会忽略Binding

有没有办法在我的UserControl中检测到用户想要替换/覆盖DependencyProperty中的XAML? 我可以添加一个新的DependencyProperty,当用户打算使用自定义值时,可以将其设置为true,但这很容易出错。

1 个答案:

答案 0 :(得分:1)

不是分配本地值,而是调用

Activity