|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
Начинаю осваивать WPF. Нужно нарисовать такую таблицу. Поля Name1-15 - просто текст, Data1-9 - данные из БД. Помогите пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2017, 09:53 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
DerzkiiНачинаю осваивать WPF. Начинают с Hello World. Т.е. не твоей, а той что найдёте в книгах, инете. А потом переделываете под свою. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2017, 11:22 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
DerzkiiНачинаю осваивать WPFКакая-то литература изучена? Или методом тыка решил? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2017, 11:25 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
DerzkiiНачинаю осваивать WPF. Нужно нарисовать такую таблицу. Поля Name1-15 - просто текст, Data1-9 - данные из БД. Помогите пожалуйста! в 3 словах что нужно сделать: Знать основы Binding'а, Макетрирования, Панелей, Связывания коллекций Изучить как работает контроль ItemsControl Создать контрол в котором будет ItemsControl в котором элментами списка являются ItemsControl'ы Завернуть это всё в ScrollViewer Можно делать с виртуализацией, но это сложнее. Вариант проще: Взять DataGrid\ListView задать шаблон так, что выглядеть будет точь в точь как таблица на экране, отключить функционал в контроле, если нужно это просто как визуальный элемент. Не имеет смысла пилить свой Grid, задайте внешний вид существующему, возможности WPF в этом плане безграничны. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2017, 11:46 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
Разрешите, продолжу в этой же теме? Сначала дам совет вопрошающему: пока не выучишь самый минимум, хотя бы (но основательно, наизусть) WPF Productivity Playbook и WPF Data Binding in Depth пытаться это сделать даже не пробуй. После этого ищи больше инфы и ищи её в зависимости от того. И уже когда будет более-менее толковая база, тогда по какой-то конкретике можешь обращаться на форумы. Иначе ответ на один вопрос будет порождать вереницу других вопросов. После этого можешь вернуться сюда и тебе будет совершенно понятен мой: Создавай DataGrid, в котором настрой CellTemplate для этих столбцов таким образом, чтобы он представлял собой DataGrid с атрибутом HeadersVisibility="None". Другими словами, просто сделай так, чтобы каждый твой CellTemplate представлял собой DataGrid. Суть в том, что в WPF все компоненты можно друг в друга вкладывать. Таблицы в ячейки, кнопки в кнопки, картинки или целые форматированные панели в пункты меню или в качестве элементов списков. У меня вопрос чуть сложнее: Такой столбец (в ячейки которого вложена таблица) всего 1. Остальные столбцы "обычные". Каждая ячейка этого столбца представляет собой DataGrid с 3 столбцами - всё это описано в шаблоне и указано как CellTemplate. А вот HeaderTemplate представляет собой GridViewHeaderRowPresenter, и там пришлось опять в свойстве Columns описывать эти три столбца, чтобы был заголовок. Визуально всё красиво, но вложенные в ячейки таблицы не реагируют на изменение ширины столбцов и их перестановку (оно и логично, GridViewHeaderRowPresenter с теми гридами никак не связан). Не могу уловить, как правильно сделать. По идее, заголовок я вообще должен описывать с помощью DataGridRowHeader, но как в нём описать столбцы, если там даже Columns нет. Не могу понять, как его связать с теми DataGrid'ами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 01:40 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
блин, не дописал: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 01:41 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
и поправка номер два: хорошо я согласенПо идее, заголовок я вообще должен описывать с помощью DataGridRowHeader DataGridColumnHeadersPresenter ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 02:02 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
Пока додумался только до такого варианта: В основной таблице среди прочих создаю колонку: Код: xml 1. 2. 3. 4. 5.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Осталось только связать два грида между собой и убрать описание колонок из того грида, что представлен в шаблоне Template. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 11:43 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
имхо, но DataGrid не предназначен для сводных и многоуровневых таблиц, для этого лучше использовать всякие телерики и прочее. Как то делать было не чего, переопределил методы Measure\Arrange и добавил возможность делать для ячейки Merge по столбцам, Так как ячейки закидываются по сути в Grid, это можно сделать довольно легко. Получалось в целом прикольно, но нужно было еще переделывать навигацию по кнопкам. Объединение по строкам, можно реализовать в рамках 1 строки, как вариант. но всё это костыли на костыле, лучше использовать готовый DataGrid, а не пытаться делать самому. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 13:59 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
С одной стороны, да. Но с другой два минуса: мне так и не удалось найти такой грид. Думаю, если он и есть, то у него будет какая-то своя толстая документация и в нагрузку специфика, которую потом хрен преодолеешь (напр., хочу помимо грида в этой ячейке кнопочку какую-нибудь запилить в уголке, типа, "редактировать в отдельном окне", или несколько кнопочек - ну я к примеру. Или значок какой, или форматирование особое или ещё что-то). Речь не о том,что "нельзя! не эргономично!", потому что ответом будет "ты посмотри сначала конечный вариант и потом уже скажешь, эргономично это или нет. в принципе, получился ж грид тот, что нужно. Осталось лишь "поженить" столбцы в заголовке со столбцами в ячейках - как-то забайндить свойство Width и позицию столбцов. Вот, если так сформулировать задачу: есть два одинаковых грида с одинаковым контентом. Как их синхронизировать их ширины колонок и позиции столбцов? Такая задача вполне может быть полезной в приложении, что-то выводящее на проекторе какие-то отдельные элементы, с которыми манипулирует оператор. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 14:39 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
хорошо я согласеннапр., хочу помимо грида в этой ячейке кнопочку какую-нибудь запилить в уголке, типа, "редактировать в отдельном окне" Так можно всё оправдать. Кнопка в уголке это нестандартный грид. Такой, как сапоги индивидуального пошива. Если есть html поддежка, то пиши туда ссылку. А обычный грид редактор на события. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 14:52 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
хорошо я согласенВот, если так сформулировать задачу: есть два одинаковых грида с одинаковым контентом.не надо объединять ячейки. Есть DataGrid а есть DBGrid. В первом рисуем, а во втором только группировка. Как в дельфи))) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 14:56 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
Ширину столбцов можно попробовать синхронизировать через Grid.IsSharedSizeScope="True" DefinitionBase.SharedSizeGroup="SomeGroup" Первое это AP, её нужно присобачить на самом верхнем уровне, а второе задается в Column\RowDefinition для 2 колонок\строк. Тогда между ними размеры будут синхронизироваться. Но работает, это не очень надежно, если честно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2017, 15:28 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
Немного экспериментировал и столкнулся со странной штукой. Создал таблицу, третий столбец содержит в себе список. Странность в том, что в режиме разработки этот список заполнен корректно. В рантайме ячейки третьего столбца пустые. output не содержит никаких warning и error. Не могу понять, в чём дело. Код: xml 1. 2. 3. 4. 5. 6. 7.
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 12:46 |
|
Нужно нарисовать таблицу в WPF!
|
|||
---|---|---|---|
#18+
а, опечатался. Там нужно было StaticResource. Короче, ТС, получай готовое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2017, 13:05 |
|
|
start [/forum/topic.php?fid=21&fpage=7&tid=1440469]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 197ms |
0 / 0 |