У меня странная проблема при связывании комбинированного списка в окне WPF.
Я загружаю объект List, чтобы заполнить комбинированный список через его .ItemsSource при загрузке окна, однако он не заполняется..
По крайней мере, пока стрелка не нажата.Как только стрелка нажата, окно замирает, и через минуту или около того в нем отображается более 4000 записей.
Теперь список загружается, однако, когда я нажимаю на поле со списком,рендеринг занимает некоторое время, так как я могу показать курсор ожидания, пока он рендерит список?
Вот Xaml для него:
<ComboBox Grid.Column="1"
HorizontalAlignment="Stretch" Margin="3" Name="tUser" VerticalAlignment="Stretch"
DisplayMemberPath="UsersName" SelectedValuePath="UserID" SelectedValue="0"/>
И выделенный код:
Private Sub CreateTask_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Using New WaitCursor
_LA.Show()
Me.tOrder.ItemsSource = GetOrderList()
Me.tUser.ItemsSource = GetUserList()
_LA.Hide()
End Using
End Sub
Private Function GetUserList() As List(Of UserTyping)
Dim _Qry As New List(Of UserTyping)
Using db As New DataAccess
With db
.QueryType = CmdType.InlineSQL
.Query = "Select 0 As UserID, '-Select User-' As UsersName Union All Select userID As UserID, userFullName As UsersName From vwSelectUser"
Using _Results = .GetResults()
If _Results IsNot Nothing Then
If _Results IsNot Nothing Then
_Qry = (From row In _Results.Cast(Of DbDataRecord)()
Select New UserTyping() With {
.UserID = Common.IsNull(Of Long)(row, 0, 0),
.UsersName = Common.IsNull(Of String)(row, 1, String.Empty)
}).ToList()
Else
_Qry = New List(Of UserTyping)
End If
End If
End Using
End With
End Using
Return _Qry
_Qry.Clear()
End Function
Partial Public Class UserTyping
Public Property UserID As Long
Public Property UsersName As String
End Class