компоновка сетки против управления таблицей?

#wpf

Вопрос:

Мне нужно отобразить в своей программе количество аналогичных статистических данных, таких как:

 Name / Age / Salary / Position
John   30     1000    senior
Kate   18     100     intern
...     ..    ..       ...
 

Всего мне нужно отобразить несколько сотен строк.

Вопрос в том, какой контроль я должен использовать?

По крайней мере, я знаю два варианта:

  • используйте управление таблицей
  • используйте макет сетки (затем динамически добавляйте метки и т. Д. в сетку)

Я думаю, что с сеткой у меня автоматически будет «пользовательский рендеринг», потому что я могу добавить в сетку все, что угодно, не только «Метку», но и кнопки, например. Однако я не уверен, нужна ли мне такая возможность.

Но мне нужна возможность сортировать таблицу по определенному столбцу.

Таким образом, кажется, что «Таблица» лучше соответствует моим потребностям, однако я заметил, что, похоже, «Таблица» не очень популярна в WPF (я прав? почему?)

Итак, вопрос в том, «Должен ли я использовать таблицу или есть что-то лучше?» Можно ли использовать привязку данных к таблице?

Я абсолютно новичок в WPF, так что извините за любые глупые вопросы 🙂

Ответ №1:

DataGrid и GridView были созданы именно для этого. Когда вы привязываете источник, он создает таблицу, подобную строке, для каждой строки в источнике.

Ответ №2:

Либо используйте a DataGrid , либо a ListView GridView ), не используйте a Grid , и о чем это Table вы говорите? Если вы имеете в виду этот класс, то его можно использовать только в документах потока, которые вам не нужны.

(Примеры см. на страницах документации или выполните поиск)

Комментарии:

1. Я думаю, что это тот самый стол c-sharpcorner.com/uploadfile/yougerthen/…

2. @javapowered: Это управление потоковым контентом, на мой взгляд, не такой уж хороший выбор.

3. Спасибо! и что предпочтительно между DataGrid и ListView?

4. @javapowered: ListView-это более легкий элемент управления, и в основном для представления данных, DataGrid более мощный, поскольку он также предназначен для редактирования. Кроме того, он может автоматически генерировать столбцы. Прочитайте документацию, там есть несколько примеров, или поищите немного в другом месте.