问题描述
我正在尝试使用 WatchlistModel
创建一个 observableCollection。我不知道如何从 Stocks
列表(firebase json 格式)到 WatchlistModel
(类对象)获取所有内容。我尝试创建一个名为 StocksModel
的新模型并将其添加到 WatchlistModel
中,但没有结果。唯一有效的是 name
属性,它为我提供了 My Portfolio
值。
我知道我不擅长用英语解释,但请不要抱怨我的语言不好,请向我提问......
谢谢!
这是存储在 firebase 中的内容。我想反序列化 UID 键之后的所有内容:
{
"users" : {
"udW7NmXadPREbjxl2suJ1555VBC2" : {
"My Portfolio" : {
"name" : "My Portfolio","stocks" : {
"Zaptec" : {
"avgPrice" : "2,14","name" : "Zaptec","shares" : 121
}
}
}
}
}
}
这是我想要存储反序列化的 ObservableCollection:
private ObservableCollection<WatchlistModel> _watchlists;
public ObservableCollection<WatchlistModel> Watchlists
{
get { return _watchlists; }
set { _watchlists = value; }
}
这是 FirebaseDatabase.net 创建订阅的方式:
var observable = firebase.Child("users/" + _userService.GetUid()).AsObservable<WatchlistModel>().Subscribe(d =>
{
App.Current.dispatcher.Invoke((Action)delegate
{
if (d.EventType == Firebase.Database.Streaming.FirebaseEventType.InsertOrUpdate)
Watchlists.Add(d.Object);
else if (d.EventType == Firebase.Database.Streaming.FirebaseEventType.Delete)
Watchlists.Remove(d.Object);
else
Watchlists.Remove(d.Object);
});
});
最后是类:
public class StocksModel : INotifyPropertyChanged
{
#region -- Properties --
private string _name;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged("Name"); }
}
private string _avgPrice;
public string AvgPrice
{
get { return _avgPrice; }
set { _avgPrice = value; OnPropertyChanged("AvgPrice"); }
}
private string _shares;
public string Shares
{
get { return _shares; }
set { _shares = value; OnPropertyChanged("Shares"); }
}
#endregion
#region -- Constructor --
public StocksModel()
{
}
#endregion
}
public class WatchlistModel : INotifyPropertyChanged
{
#region -- Properties --
private string _name;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged("Name"); }
}
private StocksModel _stocks;
public StocksModel Stocks
{
get { return _stocks; }
set { _stocks = value; OnPropertyChanged("Stocks"); }
}
#endregion
#region -- Constructor --
public WatchlistModel(StocksModel stocks)
{
Stocks = stocks;
}
#endregion
#region -- Overrides --
public override string ToString()
{
return Name;
}
#endregion
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)