我正在填充一个我在WPF数据网格中显示的列表,但是,当我将o
对象添加到列表中时,我只得到一个指针。当我在datagrid中显示时,所有行都相同并且等于btcusdDepth.Asks
中的列表记录。如何确保记录是数据的深层副本?
var o = new OrderDataObject();
var bidMktOrders = new List<OrderDataObject>();
var askMktOrders = new List<OrderDataObject>();
foreach (var quote in btcusdDepth.Asks)
{
o.orderAmt = quote.Amount.ToString();
o.orderPrice = quote.Price.ToString();
askMktOrders.Add(o);
}
mktDepth.ItemsSource = askMktOrders;
答案 0 :(得分:0)
每次调用new
时都会存在一个对象,因此您只需要一个OrderDataObject
,只需将值更新为。
请改为:
var bidMktOrders = new List<OrderDataObject>();
var askMktOrders = new List<OrderDataObject>();
foreach (var quote in btcusdDepth.Asks)
{
var o = new OrderDataObject();
o.orderAmt = quote.Amount.ToString();
o.orderPrice = quote.Price.ToString();
askMktOrders.Add(o);
}
mktDepth.ItemsSource = askMktOrders;