gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:07:29 30 4
gpt4 key购买 nike

我想创建一些扩展的 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/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com