Является ли DataGrid необходимостью в WPF?

Я видел много обсуждений и людей, которые спрашивали о DataGrid для WPF и жаловались на Microsoft, что до сих пор у них нет такой среды с их фреймворком WPF. Мы знаем, что WPF - отличная технология пользовательского интерфейса, и у нас есть концепция ItemsControl, DataTemplate и т. д. Для создания отличного UX. Даже WPF имеет более подходящий элемент управления ListView, который можно легко создать по шаблону, чтобы обеспечить лучший пользовательский интерфейс, чем традиционный дисплей, подобный Datagrid. И я бы сказал, что готовый элемент управления DataGrid убьет или скроет большую часть творчества и, безусловно, уменьшит инновации в области пользовательского опыта.

Итак, что вы думаете о необходимости DataGrid в WPF в качестве компонента Framework? Если вы чувствуете, что это необходимо, то это просто потому, что мир так привык к способу отображения данных DatGrid в течение многих лет?

Некоторые другие потоки, обсуждающие DatGrid, - это здесь и здесь.

Ссылка на Набор инструментов WPF - последний WPF DatGrid

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
24
0
4 552
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

DataGrids отлично подходят для отображения больших объемов табличных данных, привязанных к резервному хранилищу.

Но в мире WinForms произошло то, что люди часто использовали их для всего, что требовало многоэлементного прокручиваемого списка. Вскоре стали доступны дополнительные сторонние DataGrids, которые позволяли столбцам и полям содержать кнопки, ComboBoxes, значки и т. д.

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

Я думаю, что когда появился WPF, многие программисты, вроде меня, все еще думали подобным образом и искали порты WPF для концепции DataGrid.

Не могу придумать лучшего элемента управления для отображения табличных данных, особенно в бизнес-приложениях, где вы не хотите изобретать велосипед, создавая шаблоны / разрабатывая (Headered) ItemsControl, чтобы он вел себя как старый добрый DGV. Я уверен, что вы видели это.

Да, это так! Среди многих других элементов управления, которые ms не удалось доставить. (Datepicker, NumericControl)

MS должна сначала предоставить нам инструменты для выполнения работы, это меньшее, что я ожидаю от среды программирования с ажиотажем wpf.

Верно!!! нам действительно нужны DatePicker, NumericControl и фактически ВСЕ отсутствующие элементы управления win-forms! и не только, но если они хотят привлечь людей в WPF, они должны облегчить жизнь с помощью многих дополнительных встроенных элементов управления + встроенных тем для каждого решения !!!

Shimmy Weitzhandler 17.10.2010 06:38

Проработав с WPF около 2 лет. Я бы сказал, что DataGrid - это просто прославленный ListBox (поскольку [почти] все в WPF не имеет стиля).

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

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

Odi - Xceed 10.05.2010 22:05

Я согласен ... но контекст вопроса действительно был: «Что мне делать? У Microsoft нет DataGrid», я давал лучший ответ в то время. Сегодня существует DataGrid, который делает много замечательных вещей. Я не спорю с этим. Это было опубликовано, когда DataGrid не существовало. В то время мой бизнес использовал Infragistics DataGrid.

Phobis 12.05.2010 19:09

Я не согласен, в то время как ListBox контролирует только односторонние данные, DataGrid создан для управления табличными данными (столбцы + строки), что потрясающе.

Shimmy Weitzhandler 17.10.2010 06:35

Шимми, как ты рассчитываешь, что колонки работают? Считаете ли вы, что можно добавить сетки в элемент управления списком и привязать ширину их столбцов к одному и тому же значению? Затем, возможно, назначить контексту элементов управления в сетке соответствующий DataContext для привязки «столбца»? Я только утверждал, что если кому-то достаточно сильно нужен DataGrid (а он недоступен), его можно сделать. Я сделал нечто подобное для заголовка общего столбца DataGrid. Так или иначе, у нас есть DataGrid, так что не беспокойтесь :)

Phobis 19.10.2010 01:36

Это важно, но вы можете добиться почти такого же эффекта с ListView, который использует GridView, не так ли?

Да, именно отсюда и возник мой вопрос. Я никогда не думал о большой потребности в DataGrid в такой замечательной технологии пользовательского интерфейса, как WPF.

Jobi Joy 27.09.2008 02:17

Есть много вещей, которых вы так не понимаете. Сортировка по содержимому столбца - это только самое очевидное и простое. Конечно, можно реализовать сортировку, но зачем это нужно? В моем магазине мы добавили более 3000 строк кода в базовый ListView / GridView, чтобы получить подходящий для нас элемент управления.

PeterAllenWebb 20.03.2009 18:48

с ListView вы не можете добавлять новые строки так же просто, как с DataGrid, поскольку в ListView нет EditMode.

Shimmy Weitzhandler 17.10.2010 06:36

Да, DataGrids никогда не исчезнут как важные компоненты пользовательского интерфейса для бизнеса. Людям нравятся свои таблицы, и мы хотим разделить эту любовь!

Обратите внимание, что MS являются поставляет эти дополнительные элементы управления - они создали Набор инструментов WPF на CodePlex, чтобы обеспечить быстрый способ развертывания с открытым исходным кодом.

Он уже включает DataGrid и Calendar.

Никто не оспаривает, что вы можете самостоятельно создать элемент управления DataGrid в WPF. То же, наверное, можно сказать и о WinForms, хотя это было бы сложнее. Я реализовал некоторые функции с помощью ListView - представление табличных данных легко, можно даже сказать, что оно хорошо поддерживается. Однако объем кода, написанного вручную кода, необходимого для редактирования ListView, огромен.

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

Я это оспариваю. Создание хорошей сети данных занимает чертовски много времени. На создание V1.0 нашего datagrid (Xceed для WPF, еще в январе 2007 года) потребовалось более 11000 часов, а на создание следующего Silverlight потребуется более 17500 часов. Стабильность, функции, хороший API - все это займет много времени ... ура

Odi - Xceed 10.05.2010 22:04

Другие вопросы по теме