Reputation: 21
Heres the Question:
Why does the AutoCompleteBox hate me?? I've spent at least 3 days trying to get the ACB to display data in the drop down list. All I get is the Class name in the Dropdown list. THe Listbox work Perfectly.
Thank you for your Time and Effort!
Heres a Pic of whats its doing:
Now heres the XAML for the Listbox
<ListBox Height="100" HorizontalAlignment="Left" Margin="367,81,0,0" Name="ListBox1" VerticalAlignment="Top" Width="184" ItemsSource="{Binding}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Together}" />
<TextBlock Text=" sadssa" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Here's the XAML for the AutoCompleteBox
<sdk:AutoCompleteBox x:Name="atcTextBox" ItemsSource="{Binding}" ValueMemberPath="CountryNumber" FilterMode="StartsWith"
IsTextCompletionEnabled="True" Height="30" MinimumPopulateDelay="0" MinimumPrefixLength="0" Margin="29,225,259,225">
<sdk:AutoCompleteBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=CountryName}" />
<TextBlock Text="{Binding Path=Together}" />
</StackPanel>
</DataTemplate>
</sdk:AutoCompleteBox.ItemTemplate>
</sdk:AutoCompleteBox>
And The Code Behide.
Partial Public Class pgMain
Inherits Page
Public Sub New()
InitializeComponent()
Dim a = GetCountry()
ListBox1.ItemsSource = a
atcTextBox.ItemsSource = a
End Sub
Private Function GetCountry() As List(Of Country)
Dim lstCountry As New List(Of Country)()
lstCountry.Add(New Country() With {.CountryName = "India"})
lstCountry.Add(New Country() With {.CountryName = "USA"})
lstCountry.Add(New Country() With {.CountryName = "Australia"})
lstCountry.Add(New Country() With {.CountryName = "Germany"})
lstCountry.Add(New Country() With {.CountryName = "England"})
Return lstCountry
End Function
End Class
Public Class Country
Private m_CountryName As String
Public Property CountryName() As String
Get
Return m_CountryName
End Get
Set(ByVal value As String)
m_CountryName = value
End Set
End Property
Private m_CountryNumber As Integer
Public Property CountryNumber As Integer
Get
Return m_CountryNumber
End Get
Set(value As Integer)
End Set
End Property
Public ReadOnly Property Together
Get
Return m_CountryName & " " & m_CountryNumber.ToString
End Get
End Property
Public Sub New()
m_CountryNumber = Rnd(Timer) * 100
End Sub
End Class
Upvotes: 0
Views: 406
Reputation: 21
Found the Answer.
Themeing was causeing an error in the AutocompleteBox. I removed the theme and the Autocomplete box is working now.
<toolkit:Theme ThemeUri="/System.Windows.Controls.Theming.BureauBlue;component/Theme.xaml">
</toolkit:Theme>
Now to see if there is a fix for that..
Upvotes: 1