Ich habe einen Roadblock mit verbindlichen Daten zu einem ComboBox
getroffen. Ich entwickle eine App in Windows Phone 8.1 und alles, was ich tun möchte, ist die Liste der Drucker in der ComboBox
.Daten an eine ComboBox binden
Das ist mein XAML:
<ComboBox x:Name="cbxPrinters"
HorizontalAlignment="Left"
Margin="153,150,0,0"
VerticalAlignment="Top"
Width="237">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="2">
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Dies ist die Klasse, die die Liste auffüllt. Die Daten werden als Id|Name|Id|Name|Id|Name etc
zurückgegeben, weshalb es eine Split
und eine For[...]Next
Anweisung gibt. Dieser Codeabschnitt füllt die Klasse und fügt sie der Liste hinzu. Am Ende bin ich mit einer Liste links von 54 Druckern:
Public Class Printer
Public Id As Integer
Public Name As String
Public Function Populate(ByVal ResultString As String) As List(Of Printer)
Dim _Results As List(Of String) = ResultString.Split(New String("|")).ToList
Dim _Printers As New List(Of Printer)
If _Results.Count >= 2 Then
For i = 0 To _Results.Count - 1 Step 2
Dim _Printer As New Printer
With _Printer
.Id = _Results(i)
.Name = _Results(i + 1).Trim()
End With
_Printers.Add(_Printer)
Next
End If
Return _Printers
End Function
End Class
Dieses Stück Code ordnet die List(Of Printer)
zu der ComboBox
:
Protected Overrides Async Sub OnNavigatedTo(e As NavigationEventArgs)
_Printer = New Printer
_Printers = _Printer.Populate(Await GetPrinterList())
If _Printers.Count > 0 Then
cbxPrinters.ItemsSource = _Printers
End If
End Sub
Wenn ich die App und kommen auf dieser Seite starten die Code läuft OK, aber ich bin mit was aussieht wie 54 leere Optionen zur Auswahl.