Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从自定义控件中强制更新属性_C#_Wpf_Xaml_Custom Controls - Fatal编程技术网

C# 从自定义控件中强制更新属性

C# 从自定义控件中强制更新属性,c#,wpf,xaml,custom-controls,C#,Wpf,Xaml,Custom Controls,我有一个基于RangeBase的自定义控件。在控件中,我显示了值的格式化版本,如下所示: <Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:NumericUpDownControl}}, Path=FormattedValue}" /> public string FormattedValue { get { ret

我有一个基于
RangeBase
的自定义控件。在控件中,我显示了
值的格式化版本,如下所示:

<Label Content="{Binding RelativeSource={RelativeSource FindAncestor, 
       AncestorType={x:Type local:NumericUpDownControl}}, Path=FormattedValue}" />
public string FormattedValue
{
    get { return Value.ToString(_format); }            
}
这一切似乎都很好。但是,在控件中,有一个按钮可增加
值的值

private void myButton_Click(object sender, RoutedEventArgs e)
{
    Value += 0.5;            
}

我遇到的问题是FormattedValue从未更新。我想象我需要类似于
RaisePropertyChanged
的东西,但要在控制范围内。我尝试向
FormattedValue
添加一个虚拟集,但没有效果。如何在屏幕上更新此值?

您当前的问题是,您设置了“value”属性
value+=0.5但您正在绑定到“FormattedValue”属性。因此,您在“Value”属性的Setter中为“FormattedValue”属性引发一个“PropertyChanged”,您的代码应该可以按需要工作

编辑


使用不必要的附加属性(“FormattedValue”)的更好方法是使用标签的ContentStringFormat属性。

为什么不能将FormattedValue作为依赖属性?这不会导致
FormattedValue
在控件之外可用吗?我不想这样。另外,对于下一个投票人:为什么?
\u format
字段会改变吗?然后直接绑定到
,并通过标签的
ContentStringFormat
属性进行格式化。更好的方法是使用文本块而不是标签,并设置绑定的
StringFormat