C# 在datagridview中格式化绑定数据
我有一个绑定到对象列表的DataGridView。对象的一个参数是以美分为单位的价格,我想用美元表示,若我直接写出来,我会做以下操作:C# 在datagridview中格式化绑定数据,c#,datagridview,binding,C#,Datagridview,Binding,我有一个绑定到对象列表的DataGridView。对象的一个参数是以美分为单位的价格,我想用美元表示,若我直接写出来,我会做以下操作: row.Cells[5].Value = String.Format("€ {0:0.00}", oStockData.netPriceCents / 100); 之后我可以检查数据,但无法将新的格式化字符串提交到绑定对象,因此只需要以其他格式显示数据 就我所知,我有以下选择: 将实际基础数据保存在不可浏览的参数中并创建 另一个可以更改为所需格式并显示给 用户
row.Cells[5].Value = String.Format("€ {0:0.00}", oStockData.netPriceCents / 100);
之后我可以检查数据,但无法将新的格式化字符串提交到绑定对象,因此只需要以其他格式显示数据
就我所知,我有以下选择:
有没有更好的方法,因为上面的2个对我来说似乎很脏。我看不出“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”