wpf - 如何使 Resharper 解析 CustomBinding MarkupExtension 的路径

标签 wpf visual-studio-2010 xaml resharper markup-extensions

我想创建一些扩展的 Binding-Markup-Extension,其行为就像普通的 WPF-Binding,但做了更多的事情(使用不同的默认值,也许添加一些行为等)。 代码如下所示:

public class CustomBindingExtension : Binding
{
  .. some extra properties and maybe overrides ...
}

一切正常,包括 XAML-intellisense,但我无法让 Resharper 正确解析我的绑定(bind)路径。 即:使用此代码,我可以 [Strg]+单击“CurrentText”,Resharper 让 vs2010 导航到定义 CurrentText-Property 的代码。

<UserControl x:Name="uc" ...>
  <TextBox Text="{Binding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>

但是使用在运行时正常工作的my绑定(bind),当我将鼠标悬停在“CurrentText”上时,我只是得到一个工具提示,告诉我这是一些“MS.Internal.Design.Metadata.ReflectionTypeNode”,而不是通过 [Strg]+单击导航。

<UserControl x:Name="uc" ...>
  <TextBox Text="{util:CustomBinding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>

我尝试了以下操作:

  • 从绑定(bind)派生
  • 源自BindingDecoratorBase
  • 省略我的 CustomBinding 类的“扩展”后缀
  • 将标记扩展放入单独的程序集中
  • 使用构造函数参数属性
  • Path-Property 的字符串类型属性和 PropertyPath 类型
  • 我还查看了原始类 Binding 和 BindingBase,但找不到与我的代码有任何更多差异。 有什么想法可以帮助这里吗? 或者这只是对 Binding-MarkupExtension 的特殊处理,我自己的 MarkupExtensions 根本无法获得这种处理?

    更新 16.03.2011:也可能是 Resharper 的错误或缺陷,Jetbrains 正在调查该问题:http://youtrack.jetbrains.net/issue/RSRP-230607

    2013 年 12 月 10 日更新:同时,该功能似乎正在运行(使用 R# 7.1.3,也可能是早期版本),我实际上使用 BindingDecoratorBase 的方法,并且非常喜欢它。 也许只有当您的 MarkupExtension 以“Binding”结尾时它才有效,但我的却如此,所以我很高兴。

    最佳答案

    实际上,在当前版本的 R# 中这是不可能的,而且不幸的是,即将发布的 R# 6.1 版本仍然缺少该功能。

    此功能需要大量基础架构更改,但它在我们的列表中,并且肯定会在 R# 7 中实现。看起来像 [CustomBindingMarkup]将引入 [BindingPath](用于 path 构造函数参数和 Path 属性)属性。

    对于给您带来的任何不便,我们深表歉意。

    关于wpf - 如何使 Resharper 解析 CustomBinding MarkupExtension 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265281/

    相关文章:

    c# - 复制大文件时更新进度条

    c# - 将文本框绑定(bind)到 Listview GridViewColumn

    c# - 与 xaml View 模型交互

    c# - 在 WPF 中为 DataGridRow 创建 ControlTemplate

    c# - WPF MessageBox 看起来没有样式,而 WindowsForms MessageBox 看起来不错

    c# - 多个 View 的相同命令

    c# - 使用按钮更改 ViewModel 属性

    c# - 属性绑定(bind)没有响应

    c++ - Release 与 Debug 版本中变量的奇怪行为

    c - (MS Visual Studio) c 中按成员名称初始化 const typedef 结构