Вы можете попробовать добавить пользовательский objSize объект в коллекцию objSizes, которая имеет ID = 0 и значение = «Выбрать размер ...», так как это ID 0 должен быть наверху (я думаю) и не будет сталкиваться с любыми значениями в вашей базе данных, после сохранения записи вы можете проверить соответствие, чтобы избежать записи объект «Выбрать размер ...» в вашей базе данных. У меня будет немного кода и посмотреть, будет ли это работать ...
Хорошо, у меня был другой взгляд. Вы можете сделать так, как я предложил, но вы должны отсортировать список, прежде чем передавать его в поле со списком. Вот мой пример:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
With Me.ComboBox1
.DisplayMember = "Description"
.ValueMember = "ID"
.DataSource = GetListOfObjects.returnListOFObjects
End With
End Sub
End Class
Public Class dummyObjectForCombo
Public Property ID As Integer
Public Property Description As String
Public Sub New(ByVal id As Integer,
ByVal description As String)
_ID = id
_Description = description
End Sub
End Class
Public Class GetListOfObjects
Public Shared Function returnListOFObjects() As List(Of dummyObjectForCombo)
Dim col As New List(Of dummyObjectForCombo)
Dim obj0 As New dummyObjectForCombo(-1, "Herp")
Dim obj1 As New dummyObjectForCombo(1, "Jamie")
Dim obj2 As New dummyObjectForCombo(2, "Bob")
col.Add(obj1)
col.Add(obj2)
col.Add(obj0)
'using a lambda to sort by ID as per http://stackoverflow.com/questions/3309188/c-net-how-to-sort-a-list-t-by-a-property-in-the-object
Return col.OrderBy(Function(x) x.ID).ToList
End Function
End Class
Я использовал -1 в качестве верхней записи вместо 0.
Так вы получите список, как обычно, добавьте в дополнительной фиктивной записи, затем отсортировать его в соответствии с приведенным выше кодом, прежде чем назначать его в качестве источника данных combo boxes.
Можете ли вы вставить «Выбрать размер ...» в свою коллекцию objSizes сразу после вашего вызова «GetAllHubSizes»? –