Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Помогите оформить таблицу / 20 сообщений из 20, страница 1 из 1
04.05.2017, 01:30
    #39448268
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Сделал таблицу. (я уже давно с ней вожусь, она у меня для экспериментов)
Некоторые ячейки в них - это "подтаблицы"
Она не читабельная.
Готовый тестовый проект, демонстрирующий работу этой таблицы, прикрепляю.

Мне не удаётся по-человечески довести эту таблицу по мелочам до ума. Гляньте, пожалуйста, проект. Подскажите направление, как сделать так, чтобы внешне таблица выглядела как на (нарисованном) скриншоте во втором сообщении?


Конкретные вопросы:
1. Не могу провести границу между ячеек. Border окружает одну ячейку границей - получается квадрат какой-то. Пример - "знание языков" в третьей строке на скриншоте.
2. При попытке щёлкнуть по какой-нибудь ячейке в дочерних таблицах - ноль реакции. Невозможно там поставить курсор. Если убрать триггеры, которые я туда вставил, то получится другая дурацкая ситуация - будет выделен какой-то из пунктов вообще во всех строках.

Пожалуйста, гляньте проект. Я уже тут давно уже эту таблицу мучаю.
...
Рейтинг: 0 / 0
04.05.2017, 01:30
    #39448269
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
...
Рейтинг: 0 / 0
04.05.2017, 06:54
    #39448300
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
для свойства Margin допустимы отрицательные значения
по этому, когда делаю грид, у меня ячейки имеют Margin -1,-1,0,0 ну или 0,0,-1,-1 в зависимости от того в каком направлении заполняется таблица, если включить SnapToDevicePixel ячейки получаются ровными и красивыми
Пилить свою таблицу такую смысла нет, гуглите аналогичные проекты, делать на форуме за вас такую объемную работу ни кто не будет.
...
Рейтинг: 0 / 0
04.05.2017, 11:22
    #39448520
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Roman Mejtesдля свойства Margin допустимы отрицательные значения
Да, этот момент я уже использовал, благодаря чему дочерние таблицы встают ровно, а не с отступами в 6 пикселей.
Не, я не говорю, чтобы всю работу сделали за меня. Я задал два вопроса, на которые ищу ответы.
Вообще, я маюсь с этой таблицей, наверно, с ноября. Перепробовал много разных, но они в силу разных причин мне не подошли. Подходит вот эта. Остаётся вопрос с её оформлением.
...
Рейтинг: 0 / 0
04.05.2017, 12:46
    #39448655
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Чот не догнал. У вас в тестовом проекте форма как на 1м скрине, вы же пишете про 2й скрин.
1й вопрос решается добавлением Margin в GridViewHeaderRowPresenter шаблона KataHeaderTemplate. Там надо поиграть со значениями, сделать их отрицательными. Но тогда всплывает другая проблема - надо разобраться, как сделать последний столбец в Katcollection с автозаполнением, те чтобы его ширина заполняла оставшуюся область.
...
Рейтинг: 0 / 0
04.05.2017, 12:51
    #39448663
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Добавил еще чуть стиля:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<ListView.Style>
                    <Style TargetType="ListView">
                        <Setter Property="Visibility" Value="Visible"/>
                        <Style.Triggers>
                            <DataTrigger 
                                Binding="{Binding HasItems, RelativeSource={RelativeSource Self}}" 
                                Value="False">
                                <Setter Property="Visibility" Value="Collapsed" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ListView.Style>


Это шаблон KataCellTemplate, стиль для ListView
...
Рейтинг: 0 / 0
04.05.2017, 13:01
    #39448669
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Супер_ПавЧот не догнал. У вас в тестовом проекте форма как на 1м скрине, вы же пишете про 2й скрин.
Да когда я рисовал таблицу в excel'е, немного решил подхалтурить и сократить.
Я имел в виду, что хотелось бы каким-то образом добиться такого же стиля визуализации.

А стиль сейчас опробую :)
...
Рейтинг: 0 / 0
04.05.2017, 13:06
    #39448673
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
о, круто! прочерки исчезли :-)
...
Рейтинг: 0 / 0
04.05.2017, 13:37
    #39448712
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
1й пункт решили?
...
Рейтинг: 0 / 0
04.05.2017, 13:52
    #39448721
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Супер_Пав1й пункт решили?
Нет, потому что границу смог провести только между строками.
Вертикальные границы вообще не удаются. Особенно непонятно, как их делать, в случае "знание языков" в третьей строке. Я могу слева у каждой ячейки сделать бордер, но тогда надо каким-то образом растянуть эту самую каждую ячейку по вертикали по всей высоте строки.

Плюс в дочерних таблицах разделители не "дотягиваются" до этого border'а и получается рваное такое форматирование. Чуть позже сегодня скину свои варианты решения, чтобы было понятно, о чём я.
...
Рейтинг: 0 / 0
04.05.2017, 22:23
    #39449035
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Есть возможность объединять такие вещи? Т.е. объединить шаблоны RelocTemplate и TripsTemplate в один?
Код: xml
1.
2.
3.
4.
5.
6.
        <DataTemplate x:Key="RelocTemplate">
            <Image Source="{Binding Mode=OneWay, XPath=relocate}" Width="16" Height="16" />
        </DataTemplate>
        <DataTemplate x:Key="TripsTemplate">
            <Image Source="{Binding Mode=OneWay, XPath=trips}" Width="16" Height="16" />
        </DataTemplate>


Код: xml
1.
2.
3.
4.
5.
6.
                    <GridViewColumn 
                        Header="Переезд"
                        CellTemplate="{StaticResource RelocTemplate}" />
                    <GridViewColumn 
                        Header="Командировки"
                        CellTemplate="{StaticResource TripsTemplate}" />
...
Рейтинг: 0 / 0
04.05.2017, 23:27
    #39449052
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Я обещал визуализировать свою проблему. Пример - на первых двух столбцах.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
                    <GridViewColumn 
                        Header="Фамилия">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Border BorderBrush="Black" BorderThickness="1">
                                    <TextBlock Text="{Binding XPath=family}" />
                                </Border>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn 
                        Header="Имя" >
                        <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Border BorderBrush="Black" BorderThickness="1">
                                <TextBlock Text="{Binding XPath=name}" />
                            </Border>
                        </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
...
Рейтинг: 0 / 0
05.05.2017, 10:19
    #39449202
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Charles WeylandЯ обещал визуализировать свою проблему. Пример - на первых двух столбцах.
Что вы хотите, не пойму? Зачем добавили рамку для текста?
...
Рейтинг: 0 / 0
05.05.2017, 15:01
    #39449458
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Супер_ПавЧто вы хотите, не пойму? Зачем добавили рамку для текста?
Поставлю вопрос так:
1. Как обвести рамкой ячейку, а не текст?
Или так:
2. Как обвести рамкой столбец?
...
Рейтинг: 0 / 0
05.05.2017, 16:23
    #39449528
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Charles WeylandСупер_ПавЧто вы хотите, не пойму? Зачем добавили рамку для текста?
Поставлю вопрос так:
1. Как обвести рамкой ячейку, а не текст?
Или так:
2. Как обвести рамкой столбец?
уфф....я так понял ты хочешь, чтобы каждая ячейка имела border. Это надо стили копать, кроме тебя, никто этого не будет делать, ибо это время. Посмотри вот эти примеры:
Раз
Два
Попробуй их скрестить, либо поищи еще. Но это задача на день-два, а ты с ноября не можешь. Тебе надо подучить wpf, за полгода можно десятки контролов сделать.
...
Рейтинг: 0 / 0
05.05.2017, 16:37
    #39449537
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Супер_Павуфф....я так понял ты хочешь, чтобы каждая ячейка имела border. Это надо стили копать, кроме тебя, никто этого не будет делать, ибо это время. Посмотри вот эти примеры:
Раз
Два
Да, я именно таких ответов жду. Направление, а не готовое решение. Мне не нужна готовая программа, мне нужно понимание, как её решить.

Супер_ПавПопробуй их скрестить, либо поищи еще. Но это задача на день-два, а ты с ноября не можешь. Тебе надо подучить wpf, за полгода можно десятки контролов сделать.
Я только по субботам, т.к. делаю для себя.
Да, дыры в знаниях WPF латаю чтением чужого кода на гитхабе и книг. И, на самом деле, я много чего другого узнал. Но до некоторых вещей, тем не менее, пока не додумался. Как, в частности, с этими границами ячеек.
...
Рейтинг: 0 / 0
05.05.2017, 16:46
    #39449547
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
и последний не разрешённый вопрос по этой теме - 20458593
...
Рейтинг: 0 / 0
05.05.2017, 17:16
    #39449571
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Charles Weylandи последний не разрешённый вопрос по этой теме - 20458593
Тогда совет простой. Создайте новый проект, добавьте в него ListView, где View GridView. Добейтесь нужно Вам стиля, вот прям чтобы ваще супер было. Потом уже добавляйте сгруппированные столбцы и кастомные строки.
...
Рейтинг: 0 / 0
05.05.2017, 17:19
    #39449575
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Charles Weylandи последний не разрешённый вопрос по этой теме - 20458593
по этому вопросу - нет. Дам же биндинг на разные поля. У вас в папке Дата лежит источник данных, файл 1.xml. Там есть такие записи:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<row>
    <photo>Data/2.jpg</photo>
    <family>Римак</family>
    <name>Константин</name>
    <age>21</age>
    <city>Москва</city>
    <relocate>Data/ok.png</relocate>
    <trips>Data/net.png</trips>
        
    <post>Продавец</post>
  </row>


Как мы видим, есть поля relocate, а есть trips. Для чего их объединять?
...
Рейтинг: 0 / 0
05.05.2017, 18:10
    #39449606
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите оформить таблицу
Супер_ПавДля чего их объединять?
Я хотел, чтобы у меня был один шаблон оформления ячейки для всех столбцов.
Вот, скажем, тот же текст.
В посте чуть выше 20458683 я написал множество (два) больших (в реально приложении) повторяющихся кусков кода. Мне придётся таких повторяющихся блоков насоздавать, ну, например, штук 20, если я хочу создать 20 однотипо оформленных столбцов - столбцов, содержащих текст, рамку заданного оформления, отступы, цвет и т.д.

Я рассчитывал, что можно написать как-то так (псевдокод)
Вместо этого:

Код: xml
1.
2.
3.
4.
5.
6.
        <DataTemplate x:Key="RelocTemplate">
            <Image Source="{Binding Mode=OneWay, XPath=relocate}" Width="16" Height="16" />
        </DataTemplate>
        <DataTemplate x:Key="TripsTemplate">
            <Image Source="{Binding Mode=OneWay, XPath=trips}" Width="16" Height="16" />
        </DataTemplate>



Код: xml
1.
2.
3.
4.
5.
6.
                    <GridViewColumn 
                        Header="Переезд"
                        CellTemplate="{StaticResource RelocTemplate}" />
                    <GridViewColumn 
                        Header="Командировки"
                        CellTemplate="{StaticResource TripsTemplate}" />


Что-нибудь такое:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        <DataTemplate x:Key="imageColumnTemplate">
            <Image name="someimage" Width="16" Height="16" />
        </DataTemplate>

                    <GridViewColumn 
                        Header="Переезд"
                        >Source="{Binding Mode=OneWay, XPath=relocate}" component="someimage"<
                        CellTemplate="{StaticResource imageColumnTemplate}" />
                    <GridViewColumn 
                        Header="Командировки"
                        >Source="{Binding Mode=OneWay, XPath=trips}" component="someimage"<
                        CellTemplate="{StaticResource imageColumnTemplate}" />


Не хотелось бы плодить одни и те же шаблоны DataTemplate в количестве огромной кучи штук под огромную кучу столбцов. Хотелось бы использовать один для всех.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Помогите оформить таблицу / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]