我有一个带下拉列表的面板;我用它在我的项目中设置一个字段。
public class projectclass
{
public enum mainpriority
{
basic,
urgent,
critical
};
public mainpriority _priorityfield { get; set;}
}
项目类对此字段使用枚举,因此要填充下拉列表,我会执行此操作,以填充它:
mydropdown.options.Clear();
foreach (projectclass._priorityfield priority in projectclass._priorityfield.GetValues(typeof(projectclass._priorityfield)))
{
mydropdown.options.Add( new Dropdown.OptionData() {text = priority.ToString()});
}
这允许我在项目类的每个实例中显示dropbox中的字段。 在这个方向上一切都很好,但是如果我想做相反的事情(更改下拉列表中的值,并相应地更改类字段),我就无法使其工作。
主要问题是我尝试分配给类,值为int(这是我从dropdown.value()方法得到的),但是VS告诉我不可能设置_priorityfield使用int类型输入。
不是enum,相当于0,1,2 ..... n;所以你可以使用" basic"或0作为值?
这是我使用onValueChanged委托从下拉列表设置类实例值
private void UpdatePriority(Dropdown priority)
{
int tempvalue = priority.value;
projectclass_instance1._priorityfield = tempvalue;
}
我认为我可以传递一个int,但VS说这是不可能的。我可以将下拉列表的每个值映射到枚举中的条目,但我不确定它实际上是最佳解决方案。
答案 0 :(得分:0)
感谢Ehsan的解决方案。
错误是因为我需要将int值转换为枚举类型,因此将正确识别该值。