dafeng520 发表于 2014-5-22 08:52:00

【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。
问题三:通过配置,可使上述两个方案可方便切换。

roger.wang 发表于 2014-5-22 09:47:00

抱歉,您的这个需求目前无直接的接口可实现:
1 显示3位小数
2 数据保留4位小数
3 编辑的时候又显示为4位小数

C1FlexGrid.CellFactory接口不知道您考虑过没有?可实现类似的需求,不过编码量和复杂度较大。

dafeng520 发表于 2014-5-22 14:00:00

上面提的现象,能不能认为是一个bug呢?
有没有简单的办法,解决问题二?
能否提供类似的demo呢。
谢谢!

roger.wang 发表于 2014-5-22 17:17:00

回复 3楼dafeng520的帖子

如何使界面format后和后台同步,即输入2.1234后,界面和后台数据都为2.123




安装控件后,自带有demo:C:\Users\rogerwang\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.FlexGrid\CS\FlexGridSamples\Grouping

dafeng520 发表于 2014-5-23 10:03:00

如你图所示,我尝试了一下,如果输入2.12345,format串还是按照你写的“0.###”,得到的obj依然是2.12345啊

roger.wang 发表于 2014-5-23 11:51:00

回复 5楼dafeng520的帖子

4#的结果我昨天验证过,即无法在UI输入小数点后4位(已经限制为3位了),我用的是WPF C1FlexGrid 2014V1版本。

roger.wang 发表于 2014-6-9 09:28:00

此贴有问题请继续跟帖。

dafeng520 发表于 2014-6-10 08:19:00

此问题未处理啊,能否再提供个demo我试试。

roger.wang 发表于 2014-6-10 18:15:00

抱歉让您久等了。

安装C1后,有一个自带的demo:
C:\Users\rogerwang\Documents\ComponentOne Samples\Studio for WPF\C1.WPF.FlexGrid\CS\Financial\Financial

FinancialCellFactory: 实现了自定义的CellFactory,可实现format实现不了的功能, 供您参考。

dafeng520 发表于 2014-6-12 09:27:00

我在这个sample里简单测试了一下,问题依旧,见图。
首先在第一行里输入100.123456789,按回车,显示10.12,然后看到后台数据,依然是100.123456789,而我要后台也为10.12。

页: [1] 2 3 4
查看完整版本: 【XAML】FlexGrid单元格中小数精度控制