それは私の共通の要件です。この種の値リストをオンザフライで構築する内部ユーティリティ メソッドがあります。ここで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 を作成すると、常に同じインスタンスが返されます