我们有一个应用程序,它将以毫米为单位从DB中读取真实世界的尺寸,然后这些值将在WPF中呈现给用户。目前,我通过在以下示例中乘以MilimetresPrWpfUnit
从数据存储中读取对象时使用以下策略。
public const double MilimetresPerInch = 25.4;
public const double WpfUnitsPerInch = 96;
public const double MilimetresPerWpfUnit
= WpfUnitsPerInch / MilimetresPerInch;
当加载和创建我正在转换为正在创建对象的对象时,这会产生这样的问题:当用户在屏幕上选择一个对象时,该对象的大小需要转换回真实世界大小,这不是一个问题,但有很多转换正在进行。
WPF中是否有任何实用程序可以处理将单位大小更改为公制?这可能是最好的解决方案。
另一种方法是创建一个{/ 1}},它将转换为公制单位,但我担心这会对性能产生影响。
答案 0 :(得分:1)
Hey Brett,您是否担心如果您自己进行转换会对性能产生影响?我不知道,但是如果你考虑一下,无论是通过框架自动化还是由你自己完成,转换总会有性能损失。您只需要确定可以转换数据,以便在处理数据时不需要不断复制转换。
有几种方法可以解决这个问题......
IValueConverter方法肯定是解决此问题的一种方法,或者您可以编写一种方法,将数据转换为加载数据时所需的指标,但总而言之,这是一个特定于设计的方案以及需要查看更多代码或获得更一般的算法解释以提出任何正确建议的内容。