Vb.net 基础设施超下拉列表不显示

Vb.net 基础设施超下拉列表不显示,vb.net,performance,user-interface,infragistics,Vb.net,Performance,User Interface,Infragistics,我有一个infragistics网格控件,它有两列:一列是显示特定设置名称的字符串,另一列是包含与之关联的名称可用值的下拉菜单。所有值都相同。在实例化该下拉列表并将其添加到控件后,我在设计器中添加了该下拉列表,如下所示: Me.settingLevelDrpDown.DataSource = MyDict.ToList() Me.settingLevelDrpDown.ValueMember = "Key" Me.settingLevelDrpDown.DisplayMember = "Valu

我有一个infragistics网格控件,它有两列:一列是显示特定设置名称的字符串,另一列是包含与之关联的名称可用值的下拉菜单。所有值都相同。在实例化该下拉列表并将其添加到控件后,我在设计器中添加了该下拉列表,如下所示:

Me.settingLevelDrpDown.DataSource = MyDict.ToList()
Me.settingLevelDrpDown.ValueMember = "Key"
Me.settingLevelDrpDown.DisplayMember = "Value"
在本例中,
MyDict
是一个
字典(MyEnum,String)
其中
MyEnum
只是一个枚举。显示这些信息的代码是:

settingLevelDrpDown.Visible = True
settingLevels.DisplayLayout.Bands(0).Columns(1).ValueList = settingLevelDrpDown
到目前为止,我有两个问题:

第一个是,当我显示一个下拉列表时,我得到一个表,其中一行是
Key
,一列是枚举键,一行是
Value
,其中一列是我实际想要显示的字符串。如何确保在显示字符串值的同时将枚举键绑定到下拉选择

第二是表现。我已经阅读了的第三节,据我所知,我没有发现列出的任何一点,但是加载时间非常慢,即使在表单加载之后,应用程序仍然非常缓慢


对这两个问题的任何帮助都将不胜感激。

我将努力避免代码中出现超下拉。
我将只使用列的ValueList属性

假设您的MyDict是这个类的一个实例

Dim myDict As Dictionary(Of Int32, String) = New Dictionary(Of Int32, String)
我会用这样的方法将其转换为一个值列表

Public Function ToValueList(settings As Dictionary(Of Int32, String)) As ValueList
    Dim result As ValueList = New ValueList()
    For Each kvp As KeyValuePair(Of Int32, String)  In settings
         result.ValueListItems.Add(kvp.Key, kvp.Value)
    Next
    Return result
End Function
现在,在网格的InitializeLayout事件中,您可以编写

Dim b as UltraGridBand = settingLevels.DisplayLayout.Bands(0)

' Just to avoid the user typing something not expected
' Default is an editable DropDown 
b.Columns(1).Style = ColumnStyle.DropDownList

b.Columns(1).ValueList = ToValueList(MyDict)

你真的不需要一个超级下拉列表。只需将MyDict转换为ValueList,并直接将列(1)设置为MyDict的ValueList。你能提供MyDict类吗?如何将其转换为列表?@Steve That修复了所有问题;你应该加上这个作为答案