gpt4 book ai didi

c# - ObservableCollection-无效的参数

转载 作者:行者123 更新时间:2023-12-03 10:58:40 25 4
gpt4 key购买 nike

我有一个类,它是C#WPF应用程序中ViewModel层的一部分。创建新的ObservableCollection对象并将其分配给this.AllPositions时发生错误。该错误表明ObservableCollection具有一些无效的参数。 ObservableCollection的工具提示指示它具有三个重载的构造函数。第一个不接收任何参数。第二个接收一个 IEnumberable<Dictionary<string,string>> collection 参数。第三者接收 List<Dictionary<string,string>> list 参数。我尝试了_pRepo.GetPositions()。AsEnumerable和_pRepo.GetPositions()。ToList的多种变体,但似乎无法使编译器满意。

任何帮助将不胜感激。谢谢!

编辑:
_pRepo.GetPositions()返回Systems.Collections.Generic.Dictionary<string, string>,确切的错误是参数1:无法从“System.Collections.Generic.Dictionary”转换为“System.Collections.Generic.IEnumerable>”

public class MalfunctionInputVM : ViewModelBase {

readonly PositionRepository _pRepo;

public ObservableCollection<Dictionary<string, string>> AllPositions {
get;
private set;
}

public MalfunctionInputVM(PositionRepository pRepo) {

if (pRepo == null)
throw new ArgumentNullException("pRepo");

_pRepo = pRepo;

// Invalid arguments error occurs here...
this.AllPositions = new ObservableCollection<Dictionary<string, string>>(_pRepo.GetPositions());
}
}

最佳答案

完全类似于错误消息状态:

ObservableCollection<Dictionary<string, string>>(argument);

要求 argument为以下类型之一的参数:
IEnumerable<Dictionary<string,string>>
List<Dictionary<string,string>>

您在构造函数中传递的是的返回值
_pRepo.GetPositions();

哪种类型
Dictionary<string, string>

您不能像分配元素一样分配元素。

如果您希望字典本身是可观察的,那么如果您搜索它们,可以使用一些 ObservableDictionary实现。或者,如果您确实需要包含多个字典的列表,并且打算让 _pRepo.GetPositions()的返回值成为该可观察集合中的第一项,则可以执行以下操作:
this.AllPositions = new ObservableCollection<Dictionary<string, string>(
new [] {_pRepo.GetPositions() });

关于c# - ObservableCollection-无效的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29616323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com