【发布时间】:2016-03-12 16:37:19
【问题描述】:
我有一个带有下拉菜单的面板;我用来在我的项目中设置一个字段。
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 类型。
不是枚举,相当于0,1,2.....n;所以您可以使用“基本”或 0 作为值?
这是我使用 onValueChanged 委托从下拉列表中设置类实例值的方法
private void UpdatePriority(Dropdown priority)
{
int tempvalue = priority.value;
projectclass_instance1._priorityfield = tempvalue;
}
我认为我可以传递一个 int,但 VS 说这是不可能的。我可以将下拉列表的每个值映射到枚举中的一个条目,但我不确定它实际上是否是最佳解决方案。
【问题讨论】:
-
你必须投它:
(mainpriority)tempvalue -
就是这样;铸造它将消除错误。它不会更新类实例中的原始值,但这是一个不同的问题;我可以解决这个问题。谢谢。