C# 无法转换viewModel和ObservableCollection
在下面的第二行中,我发现了一个convert error参数:C# 无法转换viewModel和ObservableCollection,c#,json,mvvm,converter,observablecollection,C#,Json,Mvvm,Converter,Observablecollection,在下面的第二行中,我发现了一个convert error参数: UserStackVM _listeStack = JsonWorker.ReadData(); ListeStacks = new ObservableCollection<UserStackVM>(_listeStack); // here JsonWorker是一个使用Json.NET()的静态类: #区域属性 私有静态字符串_json; 私有静态UserStackVM_userStack; #端区 #区域方法
UserStackVM _listeStack = JsonWorker.ReadData();
ListeStacks = new ObservableCollection<UserStackVM>(_listeStack); // here
JsonWorker是一个使用Json.NET()的静态类:
#区域属性
私有静态字符串_json;
私有静态UserStackVM_userStack;
#端区
#区域方法
///
///打开json配置文件。如果他不存在,就创造它。
///
私有静态void OpenFile()
{
使用(var stream=newfilestream(@“config.json”,FileMode.OpenOrCreate))
{
使用(变量读取器=新的流读取器(流))
{
_json=reader.ReadToEnd();
}
}
}
///
///读取json配置文件并返回所有数据。
///
///
公共静态UserStackVM ReadData()
{
OpenFile();
_userStack=JsonConvert.DeserializeObject(_json);
返回_userStack;
}
#端区
谢谢你的帮助
'MyStack.ViewModels.UserStackVM'到'System.Collections.Generic.List'
需要一个列表
(实例列表);您只提供了一个实例。换成
UserStackVM _listeStack = JsonWorker.ReadData();
ListeStacks = new ObservableCollection<UserStackVM>();
ListeStacks.Add( _listeStack );
UserStackVM\u liststack=JsonWorker.ReadData();
ListStacks=新的ObservableCollection();
添加(_liststack);
或
liststacks=新的ObservableCollection
(新列表(){liststack});
ReadData
仅返回一个值,其中作为observedcollection
的构造函数需要一个IEnumerable
。只需更改为使用集合初始化器liststacks=newobservedcollection{u liststack}代码>
#region Properties
private static string _json;
private static UserStackVM _userStack;
#endregion
#region Methods
/// <summary>
/// Open the json config file. Create it if he doesn't exist.
/// </summary>
private static void OpenFile()
{
using (var stream = new FileStream(@"config.json", FileMode.OpenOrCreate))
{
using (var reader = new StreamReader(stream))
{
_json = reader.ReadToEnd();
}
}
}
/// <summary>
/// Read the json config file and return all data.
/// </summary>
/// <returns></returns>
public static UserStackVM ReadData()
{
OpenFile();
_userStack = JsonConvert.DeserializeObject<UserStackVM>(_json);
return _userStack;
}
#endregion
UserStackVM _listeStack = JsonWorker.ReadData();
ListeStacks = new ObservableCollection<UserStackVM>();
ListeStacks.Add( _listeStack );
ListeStacks = new ObservableCollection<UserStackVM>
( new List<UserStackVM> () { listeStack } );