【XAML】FlexGrid单元格中小数精度控制
目前在使用wpf版FlexGrid时发现,如果想控制输入小数的位数,可以使用属性Format,如果要使该值可灵活配置,则可使用Format="{StaticResource Sl}"。现象: 如果数量Sl配置为“0.###”,则保留3位小数,如果输入超过3位,则截断显示,如输入2.1234,界面显示2.123,但是其绑定的结构中,数据还是2.1234,此时双击下次单元格,发现显示依然是2.123,后台结构也同时改变为2.123。
问题一:如何使界面format后和后台不同步,即输入2.1234后,界面显示2.123,后台数据一直是2.1234。当单元格进入编辑后,显示2.1234,退出编辑后,显示2.123。
问题二:如何使界面format后和后台同步,即输入2.1234后,界面和后台数据都为2.123。
问题三:通过配置,可使上述两个方案可方便切换。 抱歉,您的这个需求目前无直接的接口可实现:
1 显示3位小数
2 数据保留4位小数
3 编辑的时候又显示为4位小数
C1FlexGrid.CellFactory接口不知道您考虑过没有?可实现类似的需求,不过编码量和复杂度较大。 上面提的现象,能不能认为是一个bug呢?
有没有简单的办法,解决问题二?
能否提供类似的demo呢。
谢谢! 回复 3楼dafeng520的帖子
如何使界面format后和后台同步,即输入2.1234后,界面和后台数据都为2.123
安装控件后,自带有demo:C:\Users\rogerwang\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.FlexGrid\CS\FlexGridSamples\Grouping 如你图所示,我尝试了一下,如果输入2.12345,format串还是按照你写的“0.###”,得到的obj依然是2.12345啊 回复 5楼dafeng520的帖子
4#的结果我昨天验证过,即无法在UI输入小数点后4位(已经限制为3位了),我用的是WPF C1FlexGrid 2014V1版本。 此贴有问题请继续跟帖。 此问题未处理啊,能否再提供个demo我试试。 抱歉让您久等了。
安装C1后,有一个自带的demo:
C:\Users\rogerwang\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.FlexGrid\CS\Financial\Financial
FinancialCellFactory: 实现了自定义的CellFactory,可实现format实现不了的功能, 供您参考。 我在这个sample里简单测试了一下,问题依旧,见图。
首先在第一行里输入100.123456789,按回车,显示10.12,然后看到后台数据,依然是100.123456789,而我要后台也为10.12。