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

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


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

Пожалуйста, гляньте проект. Я уже тут давно уже эту таблицу мучаю.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39448269
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39448300
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для свойства Margin допустимы отрицательные значения
по этому, когда делаю грид, у меня ячейки имеют Margin -1,-1,0,0 ну или 0,0,-1,-1 в зависимости от того в каком направлении заполняется таблица, если включить SnapToDevicePixel ячейки получаются ровными и красивыми
Пилить свою таблицу такую смысла нет, гуглите аналогичные проекты, делать на форуме за вас такую объемную работу ни кто не будет.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39448520
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesдля свойства Margin допустимы отрицательные значения
Да, этот момент я уже использовал, благодаря чему дочерние таблицы встают ровно, а не с отступами в 6 пикселей.
Не, я не говорю, чтобы всю работу сделали за меня. Я задал два вопроса, на которые ищу ответы.
Вообще, я маюсь с этой таблицей, наверно, с ноября. Перепробовал много разных, но они в силу разных причин мне не подошли. Подходит вот эта. Остаётся вопрос с её оформлением.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39448655
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чот не догнал. У вас в тестовом проекте форма как на 1м скрине, вы же пишете про 2й скрин.
1й вопрос решается добавлением Margin в GridViewHeaderRowPresenter шаблона KataHeaderTemplate. Там надо поиграть со значениями, сделать их отрицательными. Но тогда всплывает другая проблема - надо разобраться, как сделать последний столбец в Katcollection с автозаполнением, те чтобы его ширина заполняла оставшуюся область.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #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
Помогите оформить таблицу
    #39448669
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_ПавЧот не догнал. У вас в тестовом проекте форма как на 1м скрине, вы же пишете про 2й скрин.
Да когда я рисовал таблицу в excel'е, немного решил подхалтурить и сократить.
Я имел в виду, что хотелось бы каким-то образом добиться такого же стиля визуализации.

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

Плюс в дочерних таблицах разделители не "дотягиваются" до этого border'а и получается рваное такое форматирование. Чуть позже сегодня скину свои варианты решения, чтобы было понятно, о чём я.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #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
Помогите оформить таблицу
    #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
Помогите оформить таблицу
    #39449202
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles WeylandЯ обещал визуализировать свою проблему. Пример - на первых двух столбцах.
Что вы хотите, не пойму? Зачем добавили рамку для текста?
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39449458
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_ПавЧто вы хотите, не пойму? Зачем добавили рамку для текста?
Поставлю вопрос так:
1. Как обвести рамкой ячейку, а не текст?
Или так:
2. Как обвести рамкой столбец?
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39449528
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles WeylandСупер_ПавЧто вы хотите, не пойму? Зачем добавили рамку для текста?
Поставлю вопрос так:
1. Как обвести рамкой ячейку, а не текст?
Или так:
2. Как обвести рамкой столбец?
уфф....я так понял ты хочешь, чтобы каждая ячейка имела border. Это надо стили копать, кроме тебя, никто этого не будет делать, ибо это время. Посмотри вот эти примеры:
Раз
Два
Попробуй их скрестить, либо поищи еще. Но это задача на день-два, а ты с ноября не можешь. Тебе надо подучить wpf, за полгода можно десятки контролов сделать.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39449537
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Супер_Павуфф....я так понял ты хочешь, чтобы каждая ячейка имела border. Это надо стили копать, кроме тебя, никто этого не будет делать, ибо это время. Посмотри вот эти примеры:
Раз
Два
Да, я именно таких ответов жду. Направление, а не готовое решение. Мне не нужна готовая программа, мне нужно понимание, как её решить.

Супер_ПавПопробуй их скрестить, либо поищи еще. Но это задача на день-два, а ты с ноября не можешь. Тебе надо подучить wpf, за полгода можно десятки контролов сделать.
Я только по субботам, т.к. делаю для себя.
Да, дыры в знаниях WPF латаю чтением чужого кода на гитхабе и книг. И, на самом деле, я много чего другого узнал. Но до некоторых вещей, тем не менее, пока не додумался. Как, в частности, с этими границами ячеек.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39449547
Charles Weyland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и последний не разрешённый вопрос по этой теме - 20458593
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #39449571
Супер_Пав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Charles Weylandи последний не разрешённый вопрос по этой теме - 20458593
Тогда совет простой. Создайте новый проект, добавьте в него ListView, где View GridView. Добейтесь нужно Вам стиля, вот прям чтобы ваще супер было. Потом уже добавляйте сгруппированные столбцы и кастомные строки.
...
Рейтинг: 0 / 0
Помогите оформить таблицу
    #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
Помогите оформить таблицу
    #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
20 сообщений из 20, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Помогите оформить таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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