XamDataGrid字段值作为渐变背景
|
我有Infragistics XamDataGrid,其中有几列以百分比显示数据。
现在,我希望这些列将值显示为百分比,将背景显示为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
没有找到相关结果
已邀请:
2 个回复
豪抱怒掳
辟官陡板休