Я хочу создать расширенную Binding-Markup-Extension, которая ведет себя как обычный WPF-Binding, но делает некоторые вещи больше (используйте разные значения по умолчанию, возможно, добавьте некоторое поведение и т.д.). Код выглядит следующим образом:
public class CustomBindingExtension : Binding
{
.. some extra properties and maybe overrides ...
}
Все работает отлично, в том числе XAML-intellisense, за исключением того, что я просто не могу заставить Resharper правильно решить мою привязку. I.e.: используя этот код, я могу [Strg] + нажать "CurrentText", а Resharper позволяет vs2010 перейти к коду, определяющему CurrentText-Property.
<UserControl x:Name="uc" ...>
<TextBox Text="{Binding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>
Но используя привязку my, которая работает корректно во время выполнения, я просто получаю подсказку при зависании "CurrentText", сообщая мне, что это "MS.Internal.Design.Metadata.ReflectionTypeNode", и нет навигации по [Strg] + Click.
<UserControl x:Name="uc" ...>
<TextBox Text="{util:CustomBinding ViewModel.CurrentText, ElementName=uc}" />
</UserControl>
Я пробовал следующие вещи:
Вывести из привязки Вывести BindingDecoratorBase Оставьте суффикс 'Extension' для моего класса CustomBinding добавьте расширение разметки в отдельную сборку Использовать конструкторArgumentAttribute Свойство типа string и type PropertyPath для Path-PropertyЯ также посмотрел на исходные классы Binding и BindingBase, но не смог найти больше отличий от моего кода. Любые идеи, что здесь должно помочь? Или это просто особый подход к Binding-MarkupExtension, который я никоим образом не могу получить для своих собственных MarkupExtensions?
Обновление 16.03.2011: Возможно также ошибка или недостаток Resharper, Jetbrains исследует проблему: http://youtrack.jetbrains.net/issue/RSRP-230607
Обновление 10.12.2013: Между тем, функция, похоже, работает (с R # 7.1.3, может быть, и более ранними версиями), я фактически использую подход с BindingDecoratorBase, и мне это очень нравится. Может быть, он работает только, если ваш MarkupExtension заканчивается на "Binding", но мой делает, поэтому я счастлив.