2010-10-01 22 views
0

В WPat datagrid можно разрешить пользователю вырезать или удалить столбец?WPF datagrid разрезать столбец (MVVM)

Если да, есть ли встроенная поддержка?
Если нет, то как мне это сделать? Пример иллюстрации будет очень приятным.

ответ

0

Вам понадобятся две функциональные части:

  • один для пользователя, чтобы выбрать/отменить выбор, какие столбцы они хотят видеть в сетке
  • один действовать на этой информации и на самом деле скрыть/показать влияние столбцы

Несмотря на то, что вы используете MVVM, это достаточно легко сделать, потому что его можно обрабатывать в представлении. Правильные люди, ВМ не нужно ничего знать об этом - это чисто связанная с точкой зрения вещь, не имеющая ничего общего с данными, хранящимися в виртуальной машине.

Я не собираюсь приводить образец кода, вы можете это сделать самостоятельно. Пользовательский интерфейс может быть таким же простым, как контекстное меню, при щелчке правой кнопкой мыши в столбце с возможностью «Скрыть этот столбец». Конечно, это необратимый односторонний процесс, но, возможно, это все, что вам нужно, и столбец остается скрытым, пока пользователь не запускает приложение.

Другой вариант - открыть окно модального дочернего окна с достаточной информацией в нем, чтобы пользователь мог выбрать, какие столбцы они хотят показывать или скрывать. Еще раз это может быть вызвано из пункта контекстного меню или другого действия пользовательского интерфейса. На этом этапе вы можете перечислить столбцы сетки, создать список объектов данных с информацией о каждом столбце (например, заголовок заголовка или столбца и его видимость), создать экземпляр соответствующего элемента управления для отображения этой информации (это вид), назначьте ему объекты данных (ViewModel), а затем вставьте вид в модальное дочернее окно. После закрытия окна вы можете захватить эти данные и просто перебрать его, показывая или скрывая столбцы в соответствии с выбором пользователя. Помните, что это все равно может произойти в коде исходного оригинала. Если вы используете регион или менеджер пользовательского интерфейса, например Prism, тогда через него можно управлять дочерним окном, о котором я говорю.

+0

Thats great !! Могу ли я получить код образца – GuruC

+0

@Guru - извините, но нет. Я только что закончил долгий день на работе и не хочу создавать небольшие примеры проектов на данный момент. Я дал вам достаточно подробное объяснение, которое должно заставить вас начать, я предлагаю вам попробовать попробовать себя, а затем исследовать какие-либо конкретные проблемы, когда вы сталкиваетесь с ними. – slugster

+0

Ну, это должен быть самый бесполезный комментарий, который я видел через некоторое время. Нет образца кода, никакого знания MVVM и не очень много общего в целом. –

Смежные вопросы