【问题标题】:SL4 AutoCompleteBox repeating filter results issueSL4 AutoCompleteBox 重复过滤结果问题
【发布时间】:2011-07-05 17:16:46
【问题描述】:

我在使用 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;
};

【问题讨论】:

    标签: c# silverlight-4.0 autocompletebox


    【解决方案1】:

    我最终继承了捕获 Populated 事件并执行此 hack 的 AutoCompleteBox。

    var listBox = this.GetTemplateChild("Selector") as ListBox; 
    var items = listBox.ItemsSource; 
    listBox.ItemsSource = null; 
    listBox.ItemsSource = items;
    

    它解决了问题,我确信有一种更清洁的方法,但我没有时间搞砸它。

    【讨论】:

      【解决方案2】:

      此外,之前的结果也显示出来了,但被视为不存在,对吧?我的意思是,选择它们不会改变自动完成框的值? 我也遇到了同样的问题,换了样式后就知道了。在我的情况下,这是因为 ListBox 的风格。如果您为列表框使用自定义样式,请尝试将其删除并使用默认样式。

      【讨论】:

      • 完美,谢谢。是国际化的主题为我打破了它
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 2015-04-04
      相关资源
      最近更新 更多