Я ударил блокпост с данными привязки к ComboBox
. Я разрабатываю приложение в Windows Phone 8.1, и просто все, что я хочу сделать, это список принтеров в ComboBox
.Данные привязки к ComboBox
Это моя 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>
Это класс, который заполнит список. Данные возвращаются как Id|Name|Id|Name|Id|Name etc
, поэтому есть Split
и оператор For[...]Next
. Этот бит кода заполняет класс и добавляет его в список. В конце я остался со списком 54 принтеров:
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
Этот бит кода присваивает List(Of Printer)
к 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
Когда я запустить приложение и прийти к этой странице код работает ОК, но я остался с тем, что выглядит как 54 пустых опций для выбора.