Каков наилучший метод динамического указания столбцов DataGrid в элементе управления Silverlight DataGrid во время выполнения по шаблону MVVM?
Что бы я хотел сделать, это связать свойство «DataGrid.Columns» со свойством в моей ViewModel, чтобы, если пользователь добавляет / удаляет столбцы, я просто обновлял свойство ViewModel и DataGrid изменялся. Проблема в том, что свойство DataGrid.Columns не может быть связано (я не думаю).
Поскольку это свойство недоступно и сам элемент управления DataGrid недоступен на уровне ViewModel, мой текущий подход заключается в том, чтобы выйти за пределы шаблона MVVM для этой конкретной реализации и захватить определенные события в программном обеспечении View, используя Messenger MVVM Light. класс, а затем поговорить напрямую с элементом управления DataGrid для достижения этой возможности. Я знаю, что это общее утверждение к этому подходу без подробностей, но есть ли более простой способ ... или, может быть, не намного проще, но лучший способ, который немного лучше придерживается шаблона MVVM?
Меня сводит с ума тот факт, что свойство Columns элемента управления DataGrid не может быть связано ... кажется, что это такая простая вещь.
FYI - Прежде чем предлагается использовать AutoGenerateColumns = True, класс, привязанный к каждому элементу в коллекции, привязанному к DataGrid. ItemsSource не имеет отдельных свойств для определения того, что связано со столбцами ... это свойство коллекции. он содержит столбцы для того, чтобы они оставались полностью динамичными, чтобы конкретный путь отсутствовал. Кроме того, обработка AutoGeneratingColumns и использование e.Cancel для отображения / скрытия столбцов также сомнительна по той же причине (я думаю).