2015-11-08 4 views
0

У меня возникли проблемы с gridcontrol.Devexpress- Фон и линии сетки в gridcontrol

Мне нужно стилизовать и форматировать столбец сетки с заполнением, цветами, шрифтами и эффектами зависания.

<Style x:Key="SelectedRowStyle" TargetType="{x:Type dxg:RowControl}"> 
      <Setter Property="Foreground" Value="Black" /> 
      <Setter Property="FontFamily" Value="pack://application:,,,/PA.Tos.UI;component/ResourceDictionaries/#Brandon Grotesque Black" /> 
      <Setter Property="FontSize" Value="12" /> 
      <Setter Property="FontWeight" Value="Regular" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding 
       ElementName=GroupCodeListView,Path=DataContext.SelectedGroupCode.Deleted, 
       UpdateSourceTrigger=PropertyChanged}" Value="true"> 
        <Setter Property="Background" Value="Red" /> 
        <Setter Property="Foreground" Value="Black" /> 
       </DataTrigger> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="{StaticResource HoverRowBorderColor}" /> 
        <Setter Property="Foreground" Value="Black" /> 
       </Trigger> 
       <Trigger Property="dxg:GridViewBase.IsFocusedRow" Value="True"> 
        <Setter Property="Background" Value="{StaticResource HoverRowBorderColor}" /> 
        <Setter Property="BorderBrush" Value="{StaticResource HoverStrokeColor}" /> 
        <Setter Property="BorderThickness" Value="1" /> 
        <Setter Property="Foreground" Value="Black" /> 

       </Trigger> 
      </Style.Triggers> 
     </Style> 


     <Style x:Key="CustomCellStyle" BasedOn="{StaticResource {dxgt:GridRowThemeKey 
      ResourceKey=LightweightCellStyle}}" TargetType="{x:Type dxg:LightweightCellEditor}"> 
      <Setter Property="MaxHeight" Value="25"/> 
      <Setter Property="MinHeight" Value="25"/> 
      <Style.Triggers> 

      </Style.Triggers> 
  1. В ответ на наведению мыши или выбора строки, я должен установить границы синего цвета по всем линиям сетки. Только нижняя линия сетки синяя от теперь из вышесказанного. Код, применимый к ведущему конференции, не будет возможен здесь.

  2. В ответ на значок корзины, я должен отобразить светло-красный фон для конкретной строки. Я привязываю (свойство viewmodel) SelectedGroupCode.Deleted = true для фона. Связывание показано в коде. , но все строки окрашены в красный цвет, за исключением рассматриваемой строки.

  3. Ширина линий сетки должна быть установлена. Мне удалось установить его для горизонтальных линий только с помощью gridrowthemekey_rowcontrolcontainertemplate.

Уверяю вас, я прочитал некоторые предыдущие темы, но это заняло слишком много времени для спринта схватки.

Что не хватает?

+0

Неясно, как вы используете этот стиль в вашем 'GridControl'? – nempoBu4

+0

Я устанавливаю стиль строки и стиль ячейки для вышеуказанных стилей. – user1914725

ответ

1

Если вы хотите изменить стиль ячейки в ответ на наведение мыши, вы можете использовать расширение разметки RelativeSource в привязке DataTrigger. Если вы хотите проверить, сфокусирована ли строка, вы можете использовать свойство RowData.IsFocused.
Вот пример:

<Style x:Key="CustomCellStyle" TargetType="{x:Type dxg:LightweightCellEditor}" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=LightweightCellStyle}}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type dxg:RowControl}}}" Value="True"> 
      <Setter Property="BorderBrush" Value="Blue" /> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding RowData.IsFocused}" Value="true"> 
      <Setter Property="BorderBrush" Value="Blue" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

Для отображения пользовательского стиля для конкретной строки я предлагаю вам использовать Conditional Formatting.
Вот пример:

<dxg:GridControl ...> 
    ... 
    <dxg:GridControl.View> 
     <dxg:TableView> 
      <dxg:TableView.FormatConditions>      
       <dxg:FormatCondition Expression="[Deleted]" FieldName="Profit"> 
        <dxc:Format Foreground="Red"/> 
       </dxg:FormatCondition> 
      </dxg:TableView.FormatConditions> 
     </dxg:TableView> 
    </dxg:GridControl.View> 
</dxg:GridControl> 
Смежные вопросы