3 Stimmen

WPF Toolkit AutoCompleteBox Dropdown wird nicht angezeigt

In meiner WPF-Anwendung habe ich ein UserControl, das zwei AutoCompleteBox-Steuerelemente in es hat. Dieses UserControl kann mehrere Male auf einer Seite erscheinen. Das Problem ist, dass bei der Eingabe in AutoCompleteBox, das Dropdown der Auswahlmöglichkeiten nicht angezeigt wird. Ich behandle das Populating-Ereignis, und wenn ich dort einen Haltepunkt setze und durchlaufe, kann ich deutlich sehen, dass die ItemsSource Elemente enthält, also sieht es so aus, als würde es funktionieren, außer dass ich das Dropdown-Menü nicht wirklich sehe. Ich habe das Codebeispiel unter http://msdn.microsoft.com/en-us/library/dd795156%28v=VS.95%29.aspx . Was übersehe ich hier?

XAML:

<my:AutoCompleteBox Name="acboxCoauthorName" Width="175" Unloaded="Control_Unloaded" MinimumPopulateDelay="100" Populating="acboxCoauthorName_Populating">
    <my:AutoCompleteBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=LastOrCompanyName}"/>
        </DataTemplate>
    </my:AutoCompleteBox.ItemTemplate>
</my:AutoCompleteBox>

C#:

private void acboxCoauthorName_Populating(object sender, PopulatingEventArgs e)
{
    e.Cancel = true;
    var query = from a in _context.Authors
                where a.Display_Name.StartsWith(acboxCoauthorName.Text)
                select a;
    acboxCoauthorName.ItemsSource = ((ObjectQuery) query).Execute(MergeOption.OverwriteChanges);
    acboxCoauthorName.PopulateComplete();
}

Wenn wir schon dabei sind, kann ich nicht scheinen, um das Objekt, das in Datacontext ist, entweder databind. Ich habe versucht, die Datenbindung Methode oben, oder ich ging mit dem einfacheren:

<my:AutoCompleteBox Name="acboxCoauthorName" Width="175" MinimumPopulateDelay="100" Populating="acboxCoauthorName_Populating" Text="{Binding Path=LastOrCompanyName}">

Beides hat nicht funktioniert. Irgendwelche Ideen?

EDIT: Vergessen Sie den zweiten Teil; Ich hatte das falsche Objekt festgelegt, um den DataContext des Steuerelements zu sein.

Danke.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X