powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid и Background одно колонки на выбор
3 сообщений из 3, страница 1 из 1
DataGrid и Background одно колонки на выбор
    #38975413
AderAder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Есть UserControl, который содержит DataGrid и переменную типа int KeyColumn. В DataGrid скармливаю DataTable (различное количество колонок в зависимости от выбранной таблицы), применяю стиль Background-а к колонке, после в DataGrid выбираю строку DataGrid .SelectedIndex = (int)value. Проблема заключается в том, что строка имеет выделение синим цветом все, кроме той колонки где я изменил бэкграунд. Если начать перемещаться по строкам, то выделяется вся строка нормально(ячейка с измененным бэкраундом тоже норм работает).

Код: 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.
<DataGrid Grid.Row="0" x:Name="DataGridView" CanUserAddRows="False" CanUserDeleteRows="True" 
                      CanUserSortColumns="False" Focusable="True"
                      AutoGenerateColumns="True" SelectionMode="Single" 
                      SelectionUnit="FullRow" BorderThickness="0" CanUserResizeRows="False" HeadersVisibility="Column"
                      HorizontalGridLinesBrush="#A0A0A0" VerticalGridLinesBrush="#A0A0A0"
                      PreviewKeyDown="DataGridView_OnPreviewKeyDown" MouseLeftButtonUp="DataGridView_OnMouseLeftButtonUp" IsReadOnly="True">
                <DataGrid.CellStyle>
                    <Style TargetType="DataGridCell">
                        <Setter Property="BorderThickness" Value="0"/>
                        <Setter Property="BorderBrush" Value="Transparent"/>
                        <Setter Property="Padding" Value="0"></Setter>
                    </Style>
                </DataGrid.CellStyle>
                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <Style.Triggers>
                            <Trigger Property="IsSelected"
                        Value="True">
                                <Setter Property="Background" Value="#3399FF"/>
                                <Setter Property="Foreground" Value="White"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.RowStyle>
            </DataGrid>



после загрузки данных
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var keyColumn = DataGrid.Columns[KeyColumnIndex];
            var style = new Style(typeof (DataGridCell));
            style.BasedOn = keyColumn.CellStyle;
            style.Setters.Add(new Setter(BackgroundProperty, Brushes.Wheat));
            var trigger = new Trigger { Property = DataGridCell.IsSelectedProperty, Value = true };
            trigger.Setters.Add(new Setter(BackgroundProperty, Brushes.Blue));

            style.Triggers.Add(trigger);
            keyColumn.CellStyle = style;
            DataGrid.SelectedIndex = 0;
...
Рейтинг: 0 / 0
DataGrid и Background одно колонки на выбор
    #38975468
AderAder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

...
Рейтинг: 0 / 0
DataGrid и Background одно колонки на выбор
    #38976932
AderAder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решен. Довольно интересное конечно поведение, но данный косяк появляется если открывать окно модальным (ShowDialog), при обычном открытии(Show) - косяка не наблюдается.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid и Background одно колонки на выбор
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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