Я, как правило, не рекомендовал бы попробовать это.Другой, более чистый, IMO подход заключается в использовании триггера для изменения видимости рассматриваемого объекта.
Это позволяет свернуть элемент управления и создать другой, с соответствующей настройкой привязки, видимой на основепара триггеров.Преимущество здесь в том, что вам не нужно постоянно обновлять привязки, плюс ваш интерфейс имеет соотношение 1-1 со свойствами в вашей ViewModel.
Это также будет работать с командами, как с вашим командным объектом(т. е. кнопка) может быть просто переключена на новую.