Я использую XamlServices.Transform, чтобы взять объектную модель и сериализовать ее в Xaml.
Я реализовал класс, который наследуется от XamlXmlWriter, который переопределяет WriteValue. Я использую это для повторного создания пользовательского MarkupExtension обратно в визуализированный Xaml.
Когда я заменяю «значение» в WriteValue синтаксисом для MarkupExtension, XamlXmlWriter автоматически исключает для меня MarkupExtension.
Скажем, я установил значение "{MyExtension}", рендеринг xaml выглядит так: "{} {MyExtension}" - я хочу прежнюю версию без экранирования.
В настоящее время я делаю неприятную замену ("= \" {} {MyExtension "," {MyExtension} ") на xaml после его создания, что работает, но не очень красиво.
Есть ли способ перехватить запись Xaml в точке, в которой происходит это экранирование, и сказать ему не избегать MarkUpExtension? Или, может быть, есть лучший способ визуализации MarkUpExtension?
Спасибо
Daniel