Silverlight 4 вышел, и, похоже, мы снова пропустили функциональность DataTemplate DataType в этом выпуске, что довольно важно для поддержки MVVM IMHO. Для моих приложений WPF на данный момент я довольно привык к глобальному добавлению DataTemplates для своих просмотров в мое приложение. Ресурсы с DataTypes для моих соответствующих ViewModels:Silverlight 4 DataTemplate DataType
т.е.
<DataTemplate DataType="{x:Type viewModels:myViewModel}">
<views:myView/>
</DataTemplate>
Мне нравится этот подход, так как все мои связанные ViewModels автоматически отображать правильное содержание ... особенно полезно, когда у меня есть некоторые ItemSource на мой взгляд, связанным с коллекцией ViewModels ... Это, к примеру, будет автоматически убедитесь, что каждая вкладка в TabControl, связанная с Collection<SomeViewModel>
, отображает представление, связанное с SomeViewModel
.
Некоторые вещи, которые я пробовал для SL 3 включают:
Создание «DataTemplatePresenterContentControl», который автоматически применяет DataTemplate для Контента, когда элемент управления загружен
Использование TypeConverter, применяется динамически управляющая нагрузка, идущая вниз по визуальному дереву, ищущему объекты, привязанные к данным
Использование стиля, динамически применяемого при нагрузке на управление, g для объектов, связанных с данными
Однако ни один из этих подходов не позволяет реально рассмотреть ситуацию, о которой я говорил выше, что является действительно ключевым.
Итак, поскольку это все еще невозможно из коробки в Silverlight 4, я был бы признателен, если кто-нибудь еще придумает некоторые разумные альтернативы.
Спасибо.
Я тоже использую RegionManager Призма, но не могли бы вы подробнее рассказать о том, как вы это делаете? – Jeff
Разработка в моем редактировании выше. –
Да, спасибо. Мне нравится этот подход. Но он по-прежнему не касается одной проблемы, о которой я упоминал выше; привязка к IEnumerable - например, привязка TabControl к коллекции и ожидающая, что каждая вкладка отобразит MyViewForMyViewModelClass UserControl. Или есть способ адаптировать ваш подход к поддержке этого? Благодарю. –
Jeff