2011-07-29 50 views
1

我是DE控件中的一個newby,並且我仍在評估該產品,並且有一個小問題。Devexpress DXGrid - 打印/導出自定義單元格樣式

我有一個網格有兩列,其中backcolors是由記錄狀態定義的(例如,如果狀態爲1,則單元格的背景顏色必須爲紅色)。對於collumn的CellStyle,我使用自定義的customCellStyle和Everything都可以正常工作。

<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有一種Brush。

<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

+0

您使用哪種版本的dev express? –

回答

2

我知道這是舊的,但萬一有人送過來和我一樣 - 你可能需要修改你的綁定表達式來訪問該行的數據。對於PrintCellStyle您通過RowData.Data做到這一點,那麼你的表情變得

dxp:ExportSettings.Background ="{Binding Path=RowData.Row.StatusBackColor}" 
0

你需要一個顏色屬性,而不是刷屬性,對DXP綁定:ExportSettings.Background。