Vb.net 基础设施超下拉列表不显示
我有一个infragistics网格控件,它有两列:一列是显示特定设置名称的字符串,另一列是包含与之关联的名称可用值的下拉菜单。所有值都相同。在实例化该下拉列表并将其添加到控件后,我在设计器中添加了该下拉列表,如下所示: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
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修复了所有问题;你应该加上这个作为答案