Какие классы должны преобразовывать данные этой модели в соответствующие визуальные представления? - PullRequest
0 голосов
/ 17 января 2011

Итак, у меня есть два разных представления, работающих с данными одной и той же модели, но представляя это по-разному. Модель представляет двумерный массив значений и каждый вид обеспечивает визуальное представление. One View предоставляет Типичное изображение View и использует класс Image для этого. Другой предоставление представления ASCII. Вопрос в том, должен ли я сделать преобразование из Данные двумерного массива модели в разных представлениях с использованием ViewModels или это следует делать в представлении, возможно, с помощью IValueConverters или DataTemplates?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2011

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

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

Если вам действительно нужно преобразовать свойства в какой-либо элемент пользовательского интерфейса (color, Visibility, ...), тогда IValueConvertersпростой способ сделать это.

0 голосов
/ 17 января 2011

Я предлагаю использовать преобразователи значений, когда тип, используемый представлением, зависит от вида, например, если вы преобразовываете перечисление White и Black из вашей модели в Brush,используется для фона.В этом случае конвертер теперь является частью вашего представления.

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

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