Как MVVM с DataTemplateSelector переносится с Silverlight на Flex? - PullRequest
0 голосов
/ 10 апреля 2011

Я задал вопрос здесь о MVVM В MVVM может быть только один View для каждой модели View?

Ответом будет использование DataTemplateSelector для получения нескольких просмотров. Теперь скажем, мне нужно портировать, чтобы согнуть. У Flex такая же парадигма, как у DataTemplateSelector?

Поскольку Silverlight утверждает, что он близок к Flex, я бы хотел увидеть доказательства:)

1 Ответ

1 голос
/ 10 апреля 2011

В частности, отсутствует «DataTemplateSelector». Впрочем, это неудивительно, поскольку они представляют собой разные стеки ... (Они очень похожи друг на друга с точки зрения четности функций и парадигмы разработчика) Во Flex существует концепция скинов, которая очень похожа на шаблоны. Существует также концепция средств визуализации элементов, которые очень похожи на шаблоны данных в повторяющихся представлениях (List, DataGroup, DropDownList, ComboBox, DataGrid и т. Д.)

В случае средств визуализации элементов (наиболее вероятно, о чем вы говорите) компоненты имеют необязательное свойство itemRendererFunction, которое представляет собой функцию, которая решает, какое средство визуализации элементов использовать. Это позволяет создавать чрезвычайно динамические представления поверх моделей презентаций (они не называются моделями представления во Flex ... они используют оригинальное имя модели презентации ... не знаю, почему Silverlight когда-либо сменил его на MVVM ... I отвлекся).

Что касается скинов на всех других (основанных на Spark) компонентах, вы можете изменить скины во время выполнения, используя .setStyle('skinClass', TheSkin)

Кроме того, вы можете использовать контейнеры IoC для склеивания презентационных моделей с любым представлением. Это на самом деле очень просто.

В том же духе я однажды создал очень маленький механизм отображения представлений, который позволяет регистрировать представления по типам, и привязка данных происходит автоматически. Очень похоже на RegionManager в Prism для Silverlight.

Если вам интересно, как презентационная модель вписывается в Flex, я написал две статьи на эту тему:

MVVM против модели презентации Модель презентации для использования на нескольких экранах

Во второй ссылке будет опубликовано продолжение во вторник, в котором описывается, как вы используете несколько представлений поверх одной и той же модели презентации.

Так что да. Есть несколько решений для достижения того, чего вы хотите достичь. Ни один из них не является прямым, потому что это разные стеки, но функциональность, безусловно, есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...