Как я могу выбрать цвет выбранной строки в DataGrid

Я не соглашаюсь с "ageektrapped"... с помощью метода частичного класса, не хорошая практика. Какова была бы цель разделить Словарь от страницы тогда?

От кода - позади, можно получить доступ к x:Name элементу при помощи:

Button myButton = this.GetTemplateChild("ButtonName") as Button;
if(myButton != null){
   ...
}

можно сделать это в методе OnApplyTemplate, если Вы хотите к сцеплению к средствам управления, когда Ваш пользовательский элемент управления загружается. OnApplyTemplate должен быть переопределен, чтобы сделать это. Это - обычная практика и позволяет Вашему стилю оставаться разъединенным от управления. (Стиль не должен зависеть от управления, но управление должно зависеть от наличия стиля).

121
задан H.B. 17 October 2011 в 23:15
поделиться

2 ответа

Понятно. Добавьте в раздел DataGrid.Resources следующее:

  <DataGrid.Resources>
     <Style TargetType="{x:Type dg:DataGridCell}">
        <Style.Triggers>
            <Trigger Property="dg:DataGridCell.IsSelected" Value="True">
                <Setter Property="Background" Value="#CCDAFF" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.Resources>
95
ответ дан 24 November 2019 в 01:27
поделиться

В моем случае вышеописанное решение оставило синюю рамку вокруг каждой ячейки.

Вот решение, которое сработало для меня. Оно очень простое, просто добавьте это в DataGrid. Вы можете изменить его с SolidColorBrush на любой другой, например, линейный градиент.

<DataGrid.Resources>
  <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
                   Color="#FF0000"/>
</DataGrid.Resources>
149
ответ дан 24 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: