C# MVVM应用程序中的单位转换(英尺/米/公里)放在哪里?

C# MVVM应用程序中的单位转换(英尺/米/公里)放在哪里?,c#,mvvm,C#,Mvvm,该类(模型/视图/视图模型)的正确位置在哪里? (注意-当前视图使用该类) 编辑 更准确地说,我想知道模型(即业务逻辑)是否是我可以放在这段代码上的唯一位置。通常,其他层可以包含静态类吗?(例如-ViewModel是否可以包含而不是ViewModel的其他类?因为就使用MVVM模式而言,视图和模型实际上应该是哑的。 视图应该只知道要显示什么,而模型只是数据对象 对于放置,这取决于您希望如何构造项目。 对于这样的类,我建议使用类似实用工具文件夹的工具。 这是一个放置像这样的通用功能的好地方您可以引

该类(模型/视图/视图模型)的正确位置在哪里? (注意-当前视图使用该类)

编辑


更准确地说,我想知道模型(即业务逻辑)是否是我可以放在这段代码上的唯一位置。通常,其他层可以包含静态类吗?(例如-ViewModel是否可以包含而不是ViewModel的其他类?

因为就使用MVVM模式而言,视图和模型实际上应该是哑的。 视图应该只知道要显示什么,而模型只是数据对象

对于放置,这取决于您希望如何构造项目。 对于这样的类,我建议使用类似实用工具文件夹的工具。
这是一个放置像这样的通用功能的好地方

您可以引入新文件夹,如:Common、Shared、Internal。所有选项都是有效的。在MVVM体系结构中,您对模型、视图模型和视图都有约定,但其他一切都取决于您。该文件夹应该位于哪一层?我想知道模型是否是该文件夹的唯一逻辑位置。如果你是指实用工具文件夹,我倾向于将其与模型/视图模型/视图文件夹放在同一级别,而不是放在其中一个文件夹中。它不是一个真正的模型,因为它所做的只是获取数据,使用数据,然后返回结果。但是您可以随意命名文件夹,也可以将其称为数据模型以将其与其他模型分开。但如何订购取决于你。只要你是一致的,并且坚持你自己设定的规则。我不能100%同意你,因为“单元”是一个驻留在模型中的类,例如数据的一部分。此外,代码的整个结构不是由这三个组件构建的吗?这主要是个人偏好。只要你坚持自己的规则,你就可以随心所欲地点餐。您还可以编写一个基本单元类和一个扩展来在它们之间进行转换。所以你不需要一个静态的UnitsConverter。基类将为我驻留在模型中。它将是一个数据对象,这就是模型应该是的。如果您想走得更极端,可以将枚举单独放在数据文件夹中,从模型中取出静态“数据”。
public static class UnitsConvertor
{
    public enum Unit
    {
        Feet, Meters, KM
    }

    public static int Convert(Unit srcUnit, Unit destUnit, double value)
    {
        ...
    }
}