设计师展示A' Binding'只能在DependencyObject错误的DependencyProperty上设置

时间:2014-08-13 12:20:11

标签: c# wpf

我创建了一个具有DependencyProperty的用户控件,当我尝试绑定它时,我在设计器中遇到错误:

  

“'Binding'不能在类型的'ROCValue'属性上设置   'RocIndicator'。 '绑定'只能在DependencyProperty上设置   一个DependencyObject。

编辑:我添加了静态修饰符,但我仍然遇到了这个错误。是的,我重新启动了visual studio。

public partial class RocIndicator : UserControl
{
    public static readonly DependencyProperty ROCValueProperty =
        DependencyProperty.Register("ROCValue", typeof(double), typeof(RocIndicator),
        new FrameworkPropertyMetadata(0.0, new PropertyChangedCallback(ValueChanged)));


    public double ROCValue
    {
        get { return (double)GetValue(ROCValueProperty); }
        set { SetValue(ROCValueProperty, value); }
    }
}

这是XAML:

<View:RocIndicator ROCValue="{Binding ROC}" Margin="0,10,0,0" HorizontalAlignment="Center" Width="35"/>

但是当我建立&amp;运行它。为什么会出现此错误?

3 个答案:

答案 0 :(得分:11)

依赖属性声明必须是static

public static readonly DependencyProperty ROCValueProperty ...

答案 1 :(得分:2)

将UserControl从一个项目复制到另一个项目时,我遇到了同样的问题。我尝试关闭解决方案,重新启动Visual Studio甚至重新启动我的PC。这些都没有。

然后我卸载并重新加载项目,这似乎解决了它。 (可能是Visual Studio构建错误)。

要卸载项目,请在解决方案资源管理器中右键单击您的项目,然后单击“卸载项目”。 然后再次右键单击并单击“重新加载项目”。

答案 2 :(得分:0)

我遇到了同样的问题,并通过删除项目目录中的“ obj” 文件夹并重建解决方案来解决了该问题。