我有Infragistics XamDataGrid,並在其中,有幾列顯示數據的百分比。XamDataGrid字段值作爲漸變背景
現在我希望這些列以百分比形式顯示值,並將Background作爲2色漸變顯示,其中第1種顏色將綁定到百分比值,第2種顏色將顯示左值。
解決此問題的方法是模板化cellvaluepresenter,通過它可以對單元格執行樣式設置。
您可以使用TargetType =「{x:Type igDP:CellValuePresenter}」創建樣式。
但是現在問題出現了,我該如何決定後端來的價值和根據價值來顯示背景。
以下是驗證碼。在此代碼中,當我在CellValuePresenterStyle中使用StaticResource時。綁定工作正常,但風格的轉換器不被調用。當我在CellValuePresenterStyle中使用DynamicResource時,綁定中斷,列中的值爲空。
<igDP:XamDataPresenter x:Name="xamDataPresenter1" Height="300" DataSource="{Binding DV}" >
<igDP:XamDataPresenter.FieldLayoutSettings>
<igDP:FieldLayoutSettings AutoGenerateFields="True" HeaderPrefixAreaDisplayMode="FieldChooserButton"
/>
</igDP:XamDataPresenter.FieldLayoutSettings>
<igDP:XamDataPresenter.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.FieldSettings>
<igDP:FieldSettings CellClickAction="SelectCell" AllowEdit="False" />
</igDP:FieldLayout.FieldSettings>
<igDP:FieldLayout.Fields>
<!--<igDP:UnboundField Name="ProductID" Label="Product ID" />-->
<igDP:Field Name="LocationID" DisallowModificationViaClipboard="True" >
<igDP:Field.Settings>
<igDP:FieldSettings CellValuePresenterStyle="{DynamicResource myCustomFieldCell}"/>
</igDP:Field.Settings>
</igDP:Field>
<!--You can add more Field objects here-->
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataPresenter.FieldLayouts>
</igDP:XamDataPresenter>
代碼風格
<local:StringToDoubleConverter x:Key="stringToDoubleConverter" />
<Style x:Key="myCustomFieldCell" TargetType="{x:Type igDP:CellValuePresenter}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
<Grid>
<Border Panel.ZIndex="0" Width="{Binding ElementName=textBlock,Path=Text,Converter={StaticResource stringToDoubleConverter}}" HorizontalAlignment="Left">
<Border.Background>
<LinearGradientBrush>
<GradientStop Color="Red" Offset="0" />
<GradientStop Color="Transparent" Offset="1" />
<GradientStop Color="White" Offset=".99" />
</LinearGradientBrush>
</Border.Background>
</Border>
<TextBlock Panel.ZIndex="1"
Width="Auto"
Height="Auto"
Text="{TemplateBinding Content}"
HorizontalAlignment="Center"
Margin="5,0,0,0"
VerticalAlignment="Center"
x:Name="textBlock" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
誰能給這方面的任何解決辦法。
感謝,
VJ
是的,我可以做到這一點。但是我應該綁定Field/Cell的哪個屬性以使背景顯示。 – 2011-05-30 06:52:33
我已經實現了大部分的事情。只是我不能以價值爲基礎顯示背景。你能告訴我解決它的辦法嗎?你的幫助將非常棒。 – 2011-05-30 09:08:12