Я определенно думаю, что вам следует использовать шаблон MVVM для приложений Silverlight - и одно из преимуществ этого шаблона заключается в том, что вы можете реально сделать свое приложение действительно смешиваемым с помощью нескольких простых методов. Я часто называю «смешиваемость» как «дизайн для проектируемости» - что вы используете определенные методы, чтобы убедиться, что ваше приложение отлично выглядит в Blend.
Один из методов, на которые указывает Торбьерн, - это использование инфраструктуры внедрения зависимостей и предоставление различных реализаций ваших внешних сервисов в зависимости от того, выполняется ли код в Blend или в браузере. Поэтому я настраиваю свой контейнер на использование фиктивного поставщика данных, когда код выполняется в Blend, и таким образом вы получаете поддержку времени разработки для своих списков, сеток данных и т. Д.
Часто проблема заключается в том, как декларативно установить DataContext, поэтому я часто заканчиваю тем, что использую класс локатора службы в качестве "внешнего интерфейса" для контейнера IoC. Таким образом, я могу связать контекст данных со свойством в локаторе сервиса.
Другой метод - создать некоторый элемент управления ObjectDataSource (не визуальный), который имеет два свойства: DataContext времени разработки и контекст данных RunTime. Элемент управления выполняет работу по определению места выполнения, а затем устанавливает для родительского DataContext нужный объект.