GridControl中每个单元格的EditSettings [英] EditSettings for each cell in GridControl
本文介绍了GridControl中每个单元格的EditSettings的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个表(DevExpress GridControl),用符号保存引号,每个单元格可以有不同的EditSettings类型
DisplayFormat =###。 00000或
DisplayFormat =###。0000或
DisplayFormat =###。000或
DisplayFormat = ###。00或
DisplayFormat取决于Digit列中的数据(数字)。如何为每个单元格设置DisplayFormat,而不是为整列设置?谢谢。
符号| MS SQL值|数字| 我希望在GridControl中拥有的值
USD / JPY | 101,50000 | 2 | 101,50
美元/日元| 101,50000 | 3 | 101,500
EUR / USD | 1,36500 | 4 | 1,3650
EUR / USD | 1,36500 | 5 | 1,36500
解决方案
您可以更改DisplayFormat
通过处理RowCellStyle
事件。
请看这里:
RowCellStyle事件 [ ^ ]
我已经决定了我的任务 CellTemplateSelector
public class CellTemplateSelector:DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item,DependencyObject容器)
{
FrameworkElement presenter = container as FrameworkElement;
GridCellData gridCellData = item as DevExpress.Xpf.Grid.GridCellData;
RowData rowData =(gridCellData.RowData as RowData);
decimal decPriceDigit = 0 ;
if (rowData!= null )
{
DbDataRecord dbDataRecord =((gridCellData.RowData as RowData).Row as DbDataRecord);
if (dbDataRecord!= null )
{
decPriceDigit = Convert.ToDecimal(dbDataRecord [ PriceDigit]);
return (DataTemplate)presenter.FindResource( string .Format( CellTemplatePrice_Digit {0},decPriceDigit));
}
}
返回 base .SelectTemplate (项目,容器);
}
}
< span class =code-keyword>< usercontrol.resources >
< local:celltemplateselector x:key = cellTemplateSelector xmlns:x = < span class =code-keyword>#unknown xmlns:local = #unknown / >
< <温泉n class =code-leadattribute> datatemplate x:key = CellTemplatePrice_Digit2 xmlns:x = #unknown >
< dxe:textedit editvalue = {绑定路径=值} displayformatstring = #,###,###。00 xmlns:dxe = #unknown >
< < span class =code-leadattribute> / dxe:textedit >
< / datatemplate >
< ; datatemplate x:key = CellTemplatePrice_Digit3 xmlns:x = #unknown >
< dxe:textedit editvalue = {Binding Path = Value} displayformatstring = #,## #,###。000 xmlns:dxe = #unknown >
< / dxe:textedit >
< / datatemplate >
< / usercontrol.resources >
< 温泉n> dxg:gridcolumn fieldname = EntryPrice header = 价格 dxg:celltemplateselector = {StaticResource cellTemplateSelector} xmlns:dxg = #unknown >
< / dxg:gridcolumn >
< span class =code-keyword>< dxg:gridcolumn fieldname = PriceDigit xmlns:dxg < span class =code-keyword> = #unknown >
< / dxg:gridcolumn > 跨度>
Hi, I have a table (DevExpress GridControl) that holds quotes by symbols, each cell can have a different EditSettings type
DisplayFormat="###.00000" or
DisplayFormat="###.0000" or
DisplayFormat="###.000" or
DisplayFormat="###.00" or
DisplayFormat depends on data (numeric) in column Digit. How can I set DisplayFormat for each cell, not for whole column? Thanks.
Symbol | MS SQL value | Digit | Value I want to have in GridControl
USD/JPY | 101,50000 | 2 | 101,50
USD/JPY | 101,50000 | 3 | 101,500
EUR/USD | 1,36500 | 4 | 1,3650
EUR/USD | 1,36500 | 5 | 1,36500
解决方案
you can changeDisplayFormat
by handlingRowCellStyle
event.
please see here:
RowCellStyle event[^]
I've decided my task whth CellTemplateSelector
public class CellTemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { FrameworkElement presenter = container as FrameworkElement; GridCellData gridCellData = item as DevExpress.Xpf.Grid.GridCellData; RowData rowData = (gridCellData.RowData as RowData); decimal decPriceDigit = 0; if (rowData != null) { DbDataRecord dbDataRecord = ((gridCellData.RowData as RowData).Row as DbDataRecord); if (dbDataRecord != null) { decPriceDigit = Convert.ToDecimal(dbDataRecord["PriceDigit"]); return (DataTemplate)presenter.FindResource(string.Format("CellTemplatePrice_Digit{0}",decPriceDigit)); } } return base.SelectTemplate(item, container); } }
<usercontrol.resources> <local:celltemplateselector x:key="cellTemplateSelector" xmlns:x="#unknown" xmlns:local="#unknown" /> <datatemplate x:key="CellTemplatePrice_Digit2" xmlns:x="#unknown"> <dxe:textedit editvalue="{Binding Path=Value}" displayformatstring="#,###,###.00" xmlns:dxe="#unknown"> </dxe:textedit> </datatemplate> <datatemplate x:key="CellTemplatePrice_Digit3" xmlns:x="#unknown"> <dxe:textedit editvalue="{Binding Path=Value}" displayformatstring="#,###,###.000" xmlns:dxe="#unknown"> </dxe:textedit> </datatemplate> </usercontrol.resources>
<dxg:gridcolumn fieldname="EntryPrice" header="Price" dxg:celltemplateselector="{StaticResource cellTemplateSelector}" xmlns:dxg="#unknown"> </dxg:gridcolumn> <dxg:gridcolumn fieldname="PriceDigit" xmlns:dxg="#unknown"> </dxg:gridcolumn>
这篇关于GridControl中每个单元格的EditSettings的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文