【发布时间】:2017-02-26 16:07:35
【问题描述】:
我创建了一个listbox,里面应该有多个选项,通过选择其中一个选项,将在标签中显示选择的选项描述,这个区分不同的选择
我想出了这个代码:
public Form1()
{
InitializeComponent();
listBox1.DataSource = choices;
listBox1.DisplayMember = "name";
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = valikud.ElementAt(listBox1.SelectedIndex).description;
}
List<dynamic> choices = new List<dynamic>()
{
new {
name = "Choice 1",
description = "Description 1"
},
new {
name = "Choice 2",
description = "Description 2"
}
};
}
}
这适用于常规形式,当我将其添加到我的其他程序到user control 时出现问题,问题出现在:
List<*dynamic*> choices = new List<dynamic>()
错误状态:
错误 CS1980 无法定义使用“动态”的类或成员,因为找不到编译器所需的类型“System.Runtime.CompilerServices.DynamicAttribute”。您是否缺少参考资料?
更新:问题是由于我的 .net 框架版本过时,我在 3.0 之前更新到 4.6
但是现在这引起了一个新问题:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = *choices.ElementAt(listBox1.SelectedIndex)*.description;
}
错误状态:
错误 CS0656 缺少编译器所需的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”
我怎么可能解决这个问题? -谢谢
【问题讨论】:
-
我认为这是项目所针对的框架的问题。项目的框架版本是什么?
-
@ChetanRanpariya 3.5 我认为
标签: c# winforms listbox user-controls