Помещение расширения разметки в словарь ресурсов
В моем приложении WPF я использую конвертеры значений из фреймворка Catel. Для удобства они вытекают из MarkupExtension
и вернуть себя из ProvideValue
так что я могу просто написать {Binding Converter={catel:BooleanToCollapsingVisibilityConverter}}
вместо добавления их в словарь ресурсов.
В некоторых случаях у меня очень длинные свойства конвертера, поэтому удобнее поместить их в словарь ресурсов, например <UserControl.Resources><catel:BooleanToCollapsingVisibilityConverter x:Key="MyConverter" Link="..."/></UserControl.Resources>
и ссылаться на них как StaticResource
, Но когда я это делаю, проект не может быть скомпилирован со следующей ошибкой: имя 'InitializeComponent' не существует в текущем контексте.
Есть ли способ хранить такие объекты в ресурсных словарях?
В качестве обходного пути я могу унаследовать от желаемого преобразователя значений и поместить код инициализации в конструктор, но это не так удобно.