gpt4 book ai didi

c# - WPF ComboBox TextSearch 使用 Contains 而不是 StartsWith

转载 作者:太空狗 更新时间:2023-10-29 21:45:32 26 4
gpt4 key购买 nike

我得到了一个 ComboBox,其中有很多“客户”,使用 MultiBinding 作为 Text(例如“644 Pizza Place”),这很有效从一开始就很好搜索(CustomerNumber)。但是我如何通过输入“Pizza Place”来匹配和选择呢?

<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="CustomerNumber" />
<Binding Path="CustomerName" />
</MultiBinding>

最佳答案

ComboBox 使用 TextSearch class用于项目查找。您可以在 ComboBox 上设置 TextSearch.TextPath 依赖属性:

    <ComboBox Name="cbCustomers" TextSearch.TextPath="CustomerName">...</ComboBox>

这将允许您通过 CustomerName 进行匹配,但您将失去通过 CustomerNumber 的匹配。

查找,没有太多细节,是通过以下方式完成的:ComboBox.TextUpdated 方法在您键入时被调用。此方法调用 TextSearch.FindMatchingPrefix 来查找匹配项。 TextSearch.FindMatchingPrefix 是使用 string.StartsWith(..) 调用的方法。

无法替换 string.StartsWith() 调用或 TextSearch.FindMatchingPrefix 对其他内容的调用。因此,如果您想将 string.StartsWith() 与您的自定义逻辑(如 string.Contains)交换,那么看起来您必须编写自定义 ComboBox 类

关于c# - WPF ComboBox TextSearch 使用 Contains 而不是 StartsWith,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15275261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com