0

我有一个类型的列dropdown,它是在Ultragrid. 现在我必须为该列添加一些静态值。

//代码

    UltraGridColumn = workflowGrid.Rows.Band.Columns("ShowTransactionId")
    UltraGridColumn.Header.Caption = "Show TransactionId"
    UltraGridColumn.Hidden = False
    UltraGridColumn.Style = UltraWinGrid.ColumnStyle.DropDownList
    UltraGridColumn.ValueList = 'Code here

在这里,我必须在列内添加是/否。我怎样才能做到这一点?

4

1 回答 1

2

这是我的普遍要求。我有一个内部实用程序方法可以即时构建这种价值列表。在这里,我true对 YES 字符串使用布尔值,false对 NO 字符串使用布尔值,但是,当然,您应该根据数据源列的实际值更改这些值

    Public Shared Function YesNoValueList() As Infragistics.Win.ValueList
        Dim vlYN = new Infragistics.Win.ValueList()
        vlYN.ValueListItems.Add(false, "NO")
        vlYN.ValueListItems.Add(true, "YES")
        vlYN.Key = "_YES_NO_"
        return vlYN
    End Sub

    ....

    UltraGridColumn.ValueList = InfragisticsHelper.YesNoValueList()

编辑显然这个 ValueList 对你的程序的性能影响不大,因此你可以在每次需要它时调用这个方法,但是如果你真的想要,你可以在 InfragisticsHelper 类中像这样有一个全局静态变量

   Private Shared Infragistics.Win.ValueList _yes_no_list

然后将上面的代码更改为

    Public Shared Function YesNoValueList() As Infragistics.Win.ValueList
        if _yes_no_list Is Nothing Then
            Dim vlYN = new Infragistics.Win.ValueList()
            vlYN.ValueListItems.Add(false, "NO")
            vlYN.ValueListItems.Add(true, "YES")
            vlYN.Key = "_YES_NO_"
            _yes_no_list = vlYN
        End If
        return _yes_no_list
    End Sub

通过这种方式,您在第一次使用时构建 ValueList,然后您总是返回相同的实例

于 2013-06-07T10:11:44.693 回答