BeginnerCoderPete Ответов: 1

Является ли использование contentcontrol нарушением MVVM?


Всего лишь небольшой вопрос, но сегодня я так и не нашел на него ответа, поэтому решил просто задать его себе.

Если я помещаю contentcontrol в свое представление с его содержимым, привязанным к свойству, а затем создаю DataGridView в своей viewmodel и устанавливаю это свойство на него, то это нарушает MVVM?

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

Я читал о размещении DataGrid в представлении, а затем привязке к columncollection и использовании behaivours и тому подобного.

Я чувствовал, что использование contentcontrol будет просто проще на самом деле, но должна быть причина, по которой я не могу найти много (или вообще никакой) информации о погоде, которая нарушает MVVM или нет.

Что я уже пробовал:

Goole, CodeProject, StackOverflow

Gerry Schmitz

Только читать?

BeginnerCoderPete

Да, это Датагрид только для чтения.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Поскольку это "только для чтения", это просто "виджет".

Он попадает в ту же категорию, что и "изображение", "этикетка", диаграмма, "светодиод".

Относитесь к ним всем (более или менее) как к держателям мест.

На самом деле, вы должны быть в состоянии поменять свою "сетку" на "график" или любой другой "индикатор производительности" в любое время, не потея "mvvm".


BeginnerCoderPete

Но как я могу изменить столбцы по мере необходимости через MVVM? Вот что меня интересует. Должен ли я либо построить сетку в коде и отобразить ее в contentcontrol, либо поместить сетку в мое представление и привязать столбцы к коллекции?

Gerry Schmitz

Сама "сетка" - это "вид": лишенный "логических" элементов ("строк"; "столбцов"), вы остаетесь с текстовыми блоками, возможно, флажками; т. е. "вид".

Так что это взгляд, или "взгляд - внутри - другого взгляда".

Привязка к его "собственной" модели или модели "родительского" представления.

В любом случае "код, стоящий за моделью", не знает о "сетке" (то есть о "столбцах").