我创建了一个列表框,其中应该有多个选项,通过选择其中一个选项,将在标签中显示所选择的选项描述,区别于选择与选择
我想出了这段代码:
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”。你错过了参考吗?
UPDATE :问题是由于我过时的.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'
我怎么可能解决这个问题? -Thanks
答案 0 :(得分:0)
您需要检查项目的框架版本,以获得此错误。
.NET Framework 4.0或更高版本支持动态关键字和类型。
确保项目的目标框架达到4.0或更高版本并且它应该解决您的问题。