Помещение расширения разметки в словарь ресурсов

В моем приложении WPF я использую конвертеры значений из фреймворка Catel. Для удобства они вытекают из MarkupExtensionи вернуть себя из ProvideValue так что я могу просто написать {Binding Converter={catel:BooleanToCollapsingVisibilityConverter}} вместо добавления их в словарь ресурсов.

В некоторых случаях у меня очень длинные свойства конвертера, поэтому удобнее поместить их в словарь ресурсов, например <UserControl.Resources><catel:BooleanToCollapsingVisibilityConverter x:Key="MyConverter" Link="..."/></UserControl.Resources> и ссылаться на них как StaticResource, Но когда я это делаю, проект не может быть скомпилирован со следующей ошибкой: имя 'InitializeComponent' не существует в текущем контексте.

Есть ли способ хранить такие объекты в ресурсных словарях?

В качестве обходного пути я могу унаследовать от желаемого преобразователя значений и поместить код инициализации в конструктор, но это не так удобно.

0 ответов

Другие вопросы по тегам