我有一个绑定到对象列表的DataGridView。对象的一个参数是以美分为单位的价格,我想以美元显示,如果我直接写出来,我会做以下事情:
row.Cells[5].Value = String.Format("€ {0:0.00}", oStockData.netPriceCents / 100);
我之后可以查看数据,但无法将新格式化的字符串提交给绑定对象,因此只需要以其他格式显示数据。
据我所见,我有以下选择:
将实际基础数据保存在不可浏览的参数中并创建 另一个可以改为所需的格式并显示给 用户。
填充数据网格视图时更改数据,然后进行更改 在需要时回到原始格式。
是否有更好的方法,因为上面的2对我来说似乎很脏。
答案 0 :(得分:1)
我没有看到任何肮脏的“viewmodel”以用户/ UI需要的方式表示数据。
public class OrderLineViewModel
{
private OrderLine _model;
public OrderLineViewModel(OrderLine model)
{
_model = model;
}
public decimal Price
{
get
{
return _model.Price/100.0m;
}
set
{
_model.Price = value * 100.0m;
}
}
}
然后你可以检索你的数据并用viewmodel类“包装”它,它将用UI方式表示你的数据。
var data = GetOrderLines();
dataGridView.DataSource = data.Select(orderLine => new OrderLineViewModel(orderLine))
.ToList();
您可以在datagridview的列设置中设置格式“€0.00”。