Раскрывающийся список инструментов автозаполнения WPF Toolkit не отображается - PullRequest
3 голосов
/ 21 февраля 2011

В моем приложении WPF у меня есть UserControl, в котором есть два элемента управления AutoCompleteBox. Этот UserControl может появляться несколько раз на странице. Проблема в том, что при вводе в AutoCompleteBox выпадающий список не появляется. Я работаю с событием Population, и если я поставлю точку останова и перешагну через нее, я смогу ясно увидеть, что ItemsSource содержит элементы в нем, поэтому похоже, что он работает, за исключением того, что я фактически не вижу раскрывающийся список меню. Я следовал примеру кода на http://msdn.microsoft.com/en-us/library/dd795156%28v=VS.95%29.aspx. Что мне здесь не хватает?

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();
}

Пока мы на этом, я не могу связать объект, который находится в текстовом тексте, либо. Я попробовал метод привязки данных выше, или я выбрал более простой:

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

Ни один из них не работал. Есть идеи?

РЕДАКТИРОВАТЬ: не говоря уже о второй части; Я установил неправильный объект как DataContext элемента управления.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 июля 2012

Я довольно новичок в WPF и у меня возникла та же проблема.

Я также следовал шаблону Microsoft для добавления этого элемента управления.

Примерно через час поиска на форуме silverlight(http://forums.silverlight.net/t/178152.aspx/1) было предложено:

Попробуйте добавить FilterMode = "None" в XAML

У меня сработало, возможно, они изменили значение по умолчанию, так какбыл написан исходный пример, или, может быть, кто-то, кто знает больше о WPF, и этот конкретный элемент управления может прояснить ситуацию дальше (я был просто рад перестать вырывать свои волосы).

3 голосов
/ 03 августа 2011

Если вы видите вещи в ItemSource, все должно быть в порядке ...

Попробуйте установить для MinimumPrefixLength значение 0, чтобы всплывающее окно отображалось, даже если фильтрация не выполняется, и вы видите, что содержится в списке.,Также убедитесь, что вы установили фильтр, чтобы знать, какой фильтр вы используете.

...