将米转换为公里并在 Viewmodel 中格式化值
Convert meters to kilometers and format the value in Viewmodel
我有视图模型:
public class PartnerSearchResultVM
{
public int Id { get; set; }
public string Name { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public double Distance { get; set; }
public string Classification { get; set; }
}
我像这样从数据库中获取以米为单位的距离:2354,58764478263 m
我要赠送2.35公里
如何更改 Viewmodel 以在那里进行转换(如果这是最好的地方)
我会向您的模型添加只读 属性。
public double Kilometers { get { return this.Distance / 1000; } }
如果你想要一个格式化的字符串,我会创建第二个只读的属性。
public string KilometerDisplay {
get {
return String.Format("{0:0.00}km", this.Kilometers);
}
}
虽然,根据您的用例,通用格式函数可能是合适的。也许作为扩展方法:
[Extension]
public string FormatDistance(this double distance) {
return distance.FormatDistance("");
}
[Extension]
public string FormatDistance(this double distance, string unitString) {
return return String.Format("{0:0.00}{1}", distance, unitString);
}
// for meters: result.Distance.FormatDistance("m");
// for kilometers: result.Kilometers.FormatDistance("km");
然后在 Distance
属性 中添加一些 XML 文档,说明它以米为单位。
我有视图模型:
public class PartnerSearchResultVM
{
public int Id { get; set; }
public string Name { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public double Distance { get; set; }
public string Classification { get; set; }
}
我像这样从数据库中获取以米为单位的距离:2354,58764478263 m
我要赠送2.35公里
如何更改 Viewmodel 以在那里进行转换(如果这是最好的地方)
我会向您的模型添加只读 属性。
public double Kilometers { get { return this.Distance / 1000; } }
如果你想要一个格式化的字符串,我会创建第二个只读的属性。
public string KilometerDisplay {
get {
return String.Format("{0:0.00}km", this.Kilometers);
}
}
虽然,根据您的用例,通用格式函数可能是合适的。也许作为扩展方法:
[Extension]
public string FormatDistance(this double distance) {
return distance.FormatDistance("");
}
[Extension]
public string FormatDistance(this double distance, string unitString) {
return return String.Format("{0:0.00}{1}", distance, unitString);
}
// for meters: result.Distance.FormatDistance("m");
// for kilometers: result.Kilometers.FormatDistance("km");
然后在 Distance
属性 中添加一些 XML 文档,说明它以米为单位。