WPF - BorderThickness (1,0,1,1) добавляет новые границы вместо удаления верхней - PullRequest
0 голосов
/ 26 декабря 2018

Я хочу удалить верхнюю границу из ячеек, содержащих пустые строки.Я попытался использовать решение, похожее на это: https://social.msdn.microsoft.com/Forums/vstudio/en-US/dac1e5c6-d3b0-4b71-84e7-f484d6165039/datagrid-and-cell-borders?forum=wpf

Соответствующая часть моего XAML:

<DataGridTextColumn Header="Header" Binding="{Binding [0]}">
    <DataGridTextColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding [0]}" Value="">
                    <Setter Property="BorderBrush" Value="Blue" />
                    <Setter Property="BorderThickness" Value="1,0,1,1" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

(я использую синий цвет, чтобы прояснить, что происходит).Он правильно определяет ячейки с пустыми строками, но не удаляет верхнюю границу, как я ожидаю.Вместо этого он добавляет еще один слой синих границ:

enter image description here

Как удалить верхнюю границу из ячеек с пустой строкой?

1 Ответ

0 голосов
/ 26 декабря 2018

Как отмечается в комментариях, вы, вероятно, сталкиваетесь с сеткой по умолчанию "GRIDLINES" для сетки данных.По умолчанию они включены для всех (как горизонтальных, так и вертикальных).Таким образом, даже если вы устанавливаете каждую ячейку данных для ячейки данных для данной верхней границы как 0 или 1 для левой, верхней, правой и нижней сторон, это не заменяет основную сетку.

Вы можете отключить это, установивлинии сетки = нет.Но теперь у вас есть проблема, связанная с попыткой форсирования каждой конкретной ячейки.

Если в первой ячейке строки есть данные, а у вас действительно есть границы с каждой стороны, она не знает, что будет дальше, чтобы повернуть ее.дно ВЫКЛ.Единственный способ, который я мог бы решить - это создать в источнике данных пользовательский столбец для определения настроек границ и предварительного сканирования для текущего / следующего, чтобы определить, должен ли он быть включен или выключен.Но это было бы проблемой, если бы разрешить сортировку сетки данных, щелкнув по заголовку столбца сетки, и эта работа идет прямо в окно ...

Зачем нужно явно отключать верхнюю границу междустрок.Это действительно необходимо?Чтобы избавиться от слишком большого количества линий, я мог бы просто попытаться установить для линий сетки значение Только по горизонтали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...