使用匿名方法初始化可观察集合
本文关键字:观察 集合 初始化 方法 | 更新日期: 2023-09-27 18:30:50
只是想做一些基本的事情,但卡住了。想要在我的模型类中初始化一个可观察的集合(请参阅下面的代码),但似乎无法使其工作。我已经为不起作用的部分输入了_。
有人可以提供指针吗
public class StockModel : ObservableCollection<KeyValuePair<string, TickerDetails>>
{
#region Properties
public string TickerSymbol { get; set; }
public TickerDetails Ticker { get; set; }
#endregion
public StockModel()
{
init();
}
public void init()
{
Add(new KeyValuePair<string, TickerDetails> { "ABC", new TickerDetails {TickerName="ABC", LastPrice=30, Ask=40, Bid=50, Volume=60 }});
}
public ObservableCollection<KeyValuePair<string, TickerDetails>> getData()
{
return this;
}
}
public class TickerDetails
{
public string TickerName { get; set; }
public int LastPrice { get; set; }
public int Bid { get; set; }
public int Ask { get; set; }
public int Volume { get; set; }
}
我知道我可以做传统方式(如下所示),但想学习上述方法
Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
查看继承的 ObservableCollection 上的类型:
ObservableCollection<string, List<int>>
这使您的类型成为字符串和列表的集合,而不是字符串和 TickerDetails。将继承的类型更改为字符串,TickerDetails,您将能够初始化。但是,您还需要更改 getData() 的符号以匹配新的继承符号,或者提供从 TickerDetails 到 List, Int 的转换
那不是吗
Add(new KeyValuePair<string, object> { "ABC", new TickerDetails { TickerName = "tick tock", LastPrice = 10 }});
?
您只需要实例化一个新的TickerDetails即可。
无论如何,这与ObservableCollection<KeyValuePair<string, List<int>>>
不匹配,所以它更像是:
Add(new KeyValuePair<string, List<int>> { "ABC", new List<int> { 1, 2, 3, 4 }});
编辑:使用您的最新编辑,第一个示例应该有效。