WPF DataGrid вырезать столбец (MVVM) - PullRequest
0 голосов
/ 01 октября 2010

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

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

1 Ответ

0 голосов
/ 01 октября 2010

Вам нужны две функциональные возможности:

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

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

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

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

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