C# 为什么绑定到属性的一个实现会导致;“缺少依赖项属性字段”;而不是另一个?

C# 为什么绑定到属性的一个实现会导致;“缺少依赖项属性字段”;而不是另一个?,c#,resharper,attached-properties,passwordbox,C#,Resharper,Attached Properties,Passwordbox,在本网站和其他网站上提出了许多关于“Dependency property field missing”错误的问题,该错误是由Resharper在使用绑定到Password Box属性时生成的。只要用谷歌搜索这个短语,在发布这篇文章时就会返回“大约8550000条结果”。它上面还有一个标签 我最近发现它不会生成错误,我正在努力找到导致Resharper不会生成错误的实现中的差异 我看到的区别是: 实际存储密码字符串的属性(BoundPassword/password)在第二个实现中使用Frame

在本网站和其他网站上提出了许多关于“Dependency property field missing”错误的问题,该错误是由Resharper在使用绑定到
Password Box
属性时生成的。只要用谷歌搜索这个短语,在发布这篇文章时就会返回“大约8550000条结果”。它上面还有一个标签

我最近发现它不会生成错误,我正在努力找到导致Resharper不会生成错误的实现中的差异

我看到的区别是:

  • 实际存储密码字符串的属性(
    BoundPassword
    /
    password
    )在第二个实现中使用
    FrameworkPropertyMetadata
    对象,而不是标准的
    PropertyMetadata
    对象。但是,当我更改第一个实现以使用这种新类型时,仍然出现了错误
  • 第一个实现在属性更改处理程序中赋值之前执行强制转换,而第二个实现在同一语句中同时执行这两个操作。但这只是编码偏好;最终结果不会改变

  • 我遗漏了什么?

    您寻找的答案在两年前的RSRP-174487问题评论中给出了-依赖项/附加属性字段名称应遵循Microsoft注释-
    SomeNameProperty
    (具有
    属性
    后缀)-由ReSharper正确处理

    依赖项属性注册实际上可能是动态的,并在运行时执行,但这是非常罕见的情况,ReSharper仍然通过简单地触发“Dependency property field missing”检查关闭(Alt+Enter-Suppress inspection)来支持它


    ReSharper旨在处理静态已知的依赖项属性注册,并为您验证DP字段的存在,但要求您遵循Microsoft DP字段命名符号才能正常工作。我认为错误消息可能会更好,我们会处理它。

    谢谢。这让我很烦。谁会想到一个成员的名字会引起问题?!哇,更改
    DoubleClickCommandProperty
    =>
    DoubleClickProperty
    (我的属性名)从我这里解决了这个问题,很有趣。。。