Click here to Skip to main content
15,885,216 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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
Posted
Updated 18-May-14 7:12am
v3

you can change DisplayFormat by handling RowCellStyle event.

please see here:
RowCellStyle event[^]
 
Share this answer
 
Comments
knocking 18-May-14 21:22pm    
Good idea, thanks, but it's for XtraGrid. I need for DxGrid.
I've decided my task whth CellTemplateSelector

C#
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);
        }
    }



XML
<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>


XML
<dxg:gridcolumn fieldname="EntryPrice" header="Price" dxg:celltemplateselector="{StaticResource   cellTemplateSelector}" xmlns:dxg="#unknown">
</dxg:gridcolumn>

<dxg:gridcolumn fieldname="PriceDigit" xmlns:dxg="#unknown">
</dxg:gridcolumn>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900