Есть также некоторые преимущества в использовании того, что Blend может делать во время разработки с XAML, но на самом деле это больше XAML против (тот же код) в аргументе code-behind.Для аргумента без выделенного кода, поскольку он относится к MVVM, реальная цель, как вы указали, состоит в том, чтобы переместить код в классы, такие как ViewModels, которые можно тестировать и использовать повторно.Как и во многих вещах, это часто доводится до крайности, и люди в конечном итоге настаивают на том, что никогда не будет никакого кода позади, когда действительно нужно не иметь бизнес-логику в коде позади, несмотря на то, чтотакже часто логика пользовательского интерфейса тоже.
XAML очень богат и позволяет вам делать многое декларативно, но все же есть определенные вещи для пользовательского интерфейса (например, обработчики событий, некоторая обработка анимации), которые могутне может быть сделано без использования некоторого кода.Обычно вам удается переместить этот код в другое место, кроме выделенного кода, используя такие вещи, как настраиваемые элементы управления, присоединенные свойства и т. Д., Но если вы не получаете никаких преимуществ от повторного использования, вероятно, просто лучше использоватьвыделение кода для выполнения этой логики пользовательского интерфейса.
Шаблоны, такие как MVVM, являются общими руководящими принципами, а не набором строгих правил, которых нужно одержимо придерживаться - они называются языками программирования.:)