Tag: 标记扩展

如何为CustomBinding MarkupExtension制作Resharperparsingpath

我想创build一些扩展绑定标记扩展,其行为就像一个正常的WPF绑定,但做更多的事情(使用不同的默认值,可能会添加一些行为等)。 代码如下所示: public class CustomBindingExtension : Binding { .. some extra properties and maybe overrides … } 这一切工作正常,包括XAML-intellisense,除了我不能使Resharper正确解决我的绑定path。 即:使用这个代码我可以[Strg] +点击'CurrentText'和Resharper让VS2010导航到定义CurrentText属性的代码。 <UserControl x:Name="uc" …> <TextBox Text="{Binding ViewModel.CurrentText, ElementName=uc}" /> </UserControl> 但使用我的绑定,在运行时正常工作,我只是得到一个工具提示hover'CurrentText'告诉我这是一些'MS.Internal.Design.Metadata.ReflectionTypeNode',并没有通过[Strg] +点击导航。 <UserControl x:Name="uc" …> <TextBox Text="{util:CustomBinding ViewModel.CurrentText, ElementName=uc}" /> </UserControl> 我尝试了以下的东西: 从绑定派生 从BindingDecoratorBase派生 省略我的CustomBinding类的“扩展”后缀 把Markup-Extension放在一个单独的程序集中 使用ConstructorArgumentAttribute path属性的stringtypes和typesPropertyPath的属性 我也看了原来的类Binding和BindingBase,但是找不到我的代码有更多的区别。 任何想法应该在这里帮助吗? 或者,这只是对Binding-MarkupExtension的一种特殊处理,我无法获得自己的MarkupExtensions? 更新16.03.2011:也可能是缺陷或Resharper缺陷,Jetbrains正在调查的问题:http://youtrack.jetbrains.net/issue/RSRP-230607 更新10.12.2013:同时,该function似乎工作(与R#7.1.3,也许也是早期版本),我实际上使用BindingDecoratorBase的方法,我非常喜欢它。 如果你的MarkupExtension以'Binding'结尾,但是我的确如此,所以我很高兴。