在 DevExpress CheckedComboBox 中获取选中的项目

2023-12-30

我正在使用DevExpress 9.3 CheckedComboBoxEdit,我需要获取所有选中项目的集合。看起来这应该是一个简单的任务,但我发现的最接近解决方案的是我可以使用:

CheckedComboBoxEdit.Properties.GetItems.GetCheckedValues()

不幸的是,这里没有 GetCheckedValues 方法。我发现了以下内容:

CheckedComboBoxEdit.Properties.GetCheckedItems()

它返回一个对象,但我找不到任何关于我应该将该对象转换为什么的引用。我还尝试迭代这些项目,并检查每一项以查看是否已选中,按照以下建议here http://www.devexpress.com/Support/Center/Question/Details/Q493701,但 Items 返回字符串集合,而不是 CheckedListBoxItem,因此我无法测试它们是否被选中。

我想要的是已检查项目的字符串集合;现在,我可以接受任何类型的收藏,甚至可以自己创建收藏。我知道一定有一些非常简单的事情我忽略了,但我似乎找不到它。

SOLUTION

这是我想出的解决方案。我更喜欢更优雅的东西;似乎应该有一种方法来获取选中的项目,因为这就是控件的用途。尽管如此,这似乎有效:

Private Function GetChecked() As List(Of String)
    Dim checked As New List(Of String)
    Dim checkedString As String = CType(SitePickerControl.Properties.GetCheckedItems(), String)
    If (checkedString.Length > 0) Then
        checked.AddRange(checkedString.Split(New Char() {","c}))
    End If
    Return checked
End Function

如果有人能给我一个合适的解决方案,我很乐意看到。


这就是我使用的:

var ids = (from CheckedListBoxItem item in checkedComboBoxEdit.Properties.Items
           where item.CheckState == CheckState.Checked
           select (int)item.Value).ToArray();

您还可以在上面创建一个扩展方法CheckedListBoxItem它将仅返回已检查的项目值。

(这是 C#,不是 VB,但概念是相同的。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 DevExpress CheckedComboBox 中获取选中的项目 的相关文章

随机推荐