我试图用枚举值初始化BindingList。 根据MSDN BindingList有一个构造函数接受IList作为参数。
我当前的代码工作,但似乎有些“笨拙”:使用枚举值初始化BindingList
list = new BindingList<Option>();
foreach (Option o in Enum.GetValues(typeof(Option)))
{
list.Add(o);
}
我试图使用此代码来代替:
list = new BindingList<Option>(Enum.GetValues(typeof(Option)));
,但它给了我一个错误说它有无效的参数,即使Enum.GetValues的返回类型是Array,它实现了IList。
如果这个构造函数实质上做我做的同样的事情,我仍然更喜欢使用构造函数来提高可读性。
如果有人能指出我使用此构造函数以供将来使用的正确方法,我很乐意。根据您的评论
var list = new BindingList<Option>(Enum.GetValues(typeof(Option)) as IList<Option>);
编辑:
这种方式初始化列表工作,谢谢。但遗憾的是,如果我以这种方式初始化它,它就是只读的。 –
@ DennisE。看到我修改后的答案。希望能帮助到你。 – astallaslions
得到它的工作,谢谢!添加枚举值列表用于为应用程序实现可重新排列的用户界面(因此,如果需要,我可以稍后在枚举中添加另一个UI部件)。 –