Проблема с результатами повторного фильтра SL4 AutoCompleteBox

У меня проблема с фильтрацией AutoCompleteBox.

Кажется, это напоминает предыдущий фильтр.

Например, я печатаю в 'A' и возвращает 1 элемент. Я удаляю «A» и набираю «Z», который должен вернуть 1 элемент.

Проблема в том, что он возвращает результаты из фильтра «A» плюс «Z», я удаляю «Z» и набираю «S». который возвращает 2 элемента и теперь отображает результаты всех 3 фильтров.

Я что-то делаю не так?

stockTypes.Add(new StockTypeDTO() { Description = "Steel Coil", StockCode = "SC" });
stockTypes.Add(new StockTypeDTO() { Description = "Palletised Steel Coil", StockCode = "PS" });
stockTypes.Add(new StockTypeDTO() { Description = "ZZZZZ", StockCode = "ZZ" });


<input:AutoCompleteBox x:Name="testauto" FilterMode="Custom">
    <input:AutoCompleteBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <ContentPresenter Content="{Binding Description}" />
            </StackPanel>
        </DataTemplate>
    </input:AutoCompleteBox.ItemTemplate>
</input:AutoCompleteBox>

testauto.ItemsSource = this.StockTypes;

testauto.ItemFilter = (search, item) =>
{
    StockTypeDTO stockType = item as StockTypeDTO;

    if (stockType != null)
    {
        string filter = search.ToUpper(CultureInfo.InvariantCulture);
        return (stockType.StockCode.ToUpper(CultureInfo.InvariantCulture).Contains(filter)
        || stockType.Description.ToUpper(CultureInfo.InvariantCulture).Contains(filter));
    }

    return false;
};
5
задан Steve 28 February 2011 в 11:45
поделиться