Devexpress DXGrid - печать / экспорт пользовательского стиля ячейки - PullRequest
1 голос
/ 29 июля 2011

Я новичок в контроле DE, и я все еще оцениваю продукт, и у меня есть небольшая проблема.

У меня есть сетка с двумя столбцами, фоновые цвета которых определяются состоянием записи (например,статус равен 1, задний цвет ячейки должен быть красным).Для CellStyle от Column я использую свой customCellStyle, и все работает нормально.

<Style x:Key="customCellStyle" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=CellStyle}}" TargetType="{x:Type dxg:CellContentPresenter}">
    <Setter Property="Background">
        <Setter.Value>
            <MultiBinding>
                <MultiBinding.Converter>
                    <local:StatusToBackroundColorConverter />
                </MultiBinding.Converter>
                <Binding Path="Column" RelativeSource="{RelativeSource Self}" />
                <Binding Path="Data.RowHandle.Value" />
                <Binding Path="Data.DocumentStatusId" />
            </MultiBinding>
        </Setter.Value>
    </Setter>

Но, когда я пытаюсь выполнить экспорт или распечатать сетку, он просто не работает.Хотя это работает, если задний цвет ячейки - жесткий код, я не могу заставить его работать с привязкой.Код выглядит так:

Ради простоты здесь я не использую конвертер;StatusBackColor имеет тип кисти.

<Style x:Key="customPrintCellStyle" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintCellStyle}}" TargetType="dxe:TextEdit">
    <Style.Setters>
        <Setter Property="dxp:ExportSettings.TargetType" Value="Panel"/>        
        <Setter Property="DisplayTemplate">
            <Setter.Value>
                <ControlTemplate TargetType="dxe:TextEdit">
                    <dxe:TextEdit Text="{Binding Value}"
                                          TextWrapping="Wrap"
                                          IsPrintingMode="True"
                                          Margin="4"
                                          VerticalContentAlignment="Center"
                                          HorizontalContentAlignment="Left"  
                                          dxp:ExportSettings.Background ="{Binding Path=StatusBackColor}"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style.Setters>
</Style>

Со статическим (dxp: ExportSettings.Background = "red") цветом это работает.

Есть идеи?Пожалуйста, помогите, я застрял :)

KR, Sebastjan

Ответы [ 2 ]

2 голосов
/ 11 апреля 2012

Я знаю, что это старо, но в случае, если кто-то попадет сюда, как я, - вам, вероятно, нужно изменить выражение привязки, чтобы получить доступ к данным строки.Для PrintCellStyle вы делаете это через RowData.Data, поэтому ваше выражение становится

dxp:ExportSettings.Background ="{Binding Path=RowData.Row.StatusBackColor}"
0 голосов
/ 28 ноября 2014

Для привязки к dxp вам необходимо свойство Color, а не свойство Brush: ExportSettings.Background.

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