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>