将静态值绑定到Ultragrid中的列

时间:2013-06-07 10:05:52

标签: vb.net infragistics ultragrid

我有一个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

这里我必须在列中添加Yes / No.我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

这是我的共同要求。我有一个内部实用工具方法,可以动态构建这种价值观。这里我对YES字符串使用布尔值true,对于NO字符串使用布尔值false,但是,当然,您应该根据数据源列的实际值更改这些值

    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,然后始终返回相同的实例