我是WPF开发的新手,我正在寻找有关我的应用程序中的循环数据绑定模式的建议。
在我正在使用的数据库中,测量单位和相关值的使用非常多。
为了演示,这里有一些精简的表格结构,可能会提供一些我必须处理的线索:
我希望这些名字不言自明。 :)
系统的工作方式,存储的值必须都是默认的系统单元。在UI中写入10米的用户不会将值存储为10,它将在之前转换为系统值。例如,对于距离值,如果距离单位类型的默认测量单位是厘米,那么存储的值实际上是1 000,因为1 000 cm = 10米。
但是,用户使用的测量单位仍然存储在数据库中。这是为了确保下次他再次在UI中打开记录时,他实际上看到了10米,而不是1000厘米。当然也必须在那里进行转换。
每单位测量类型有一个系统单位。它是将ConversionFactor设置为1的那个。其他测量单位有一个与之相关的ConversionFactor。收回距离较高的距离示例:
在UI中,我想根据上下文使用文本框来编写数字,并使用在单元类型上过滤的测量单元加载组合框。当用户加载数据时,它必须在输入时显示(根据相关的测量单位进行转换)。当他键入值时,绑定机制必须根据当前选择的度量单位的ConversionFactor将正确的转换后的值写回实体类中。
当他选择测量单位时,根据他的个人设置,可能会发生两件事:
现在我的问题是......我可以封装多少功能,以便轻松重用?这样做的最佳方式是什么?
请注意,有时我可能需要单独显示这些字段。例如,在网格中,我想要一个数字部分和单位部分的列。这仅用于允许对设备进行过滤和排序。
我不介意每次都要重新创建单位列表/组合/任何控件。我主要对重用单位转换部分感兴趣。
感谢你阅读这篇文章(哇!)以及你能想到的任何想法。 :)
答案 0 :(得分:0)
如果您不熟悉WPF,首先应该研究Model-View-ViewModel模式。
如果以这种方式构建应用程序,则可以创建一个常用的ViewModel类型,用于所有单元列表/组合/任何控件,它封装了执行单元转换的逻辑。