Jason at PTSG
Jason at PTSG

Reputation: 21

AutoCompleteBox is Evil

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: image

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

Answers (1)

Jason at PTSG
Jason at PTSG

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

Related Questions