Насколько я знаю, динамические изменения самой разметки XAML невозможны в WPF.Если вам нужно что-то подобное, я бы посоветовал вам использовать один из ваших возможных классов в XAML, чтобы сохранить поддержку проектирования и иметь действительный файл XAML, а затем написать небольшой инструмент, который проходит через все ваши файлы xaml перед компиляцией и обменом.Foo
с Bar
, если выполняется определенное условие.Очевидно, вам необходимо убедиться, что Foo
и Bar
также взаимозаменяемы.
Фактически ваш XAML будет выглядеть так
<my:Foo .../>
, а ваш инструмент проверит условие, а затемзамените Foo
на Bar
во всех ваших файлах xaml.