如何在ItemsControl中实现自定义内联搜索?

马克·A·多诺霍

这是两部分的。

首先,在WPF中,标准的ListBox控件自动支持对其项进行内联搜索。它通过使用项目的ToString函数来完成此操作,这意味着如果您将焦点放在列表框中并刚刚开始输入,它将进行最左侧的搜索,突出显示ToString与您键入的内容匹配的所有项目。短时间内的后续按键操作会添加到搜索字符串中(即,键入“ A”后跟“ S”将向左搜索“ AS”,而键入“ A”然后暂停,然后键入“ S”将向左搜索-搜索“ S”。

问题在于这种机制似乎完全依赖于ToString返回的值,在某些情况下,这是我们不能依靠的。还有其他可以代替ToString使用的东西吗?

第二部分是,行为似乎只出现在ListBox中,但是没有其他ItemsControl对象(或诸如TreeView之类的分层对象)。不必从头开始重写该功能,是否有简单的方法添加它到ItemsControl?

污秽

您可以控制使用属性TextSearch.TextTextSearch.TextPath附加属性搜索的内容(请参阅http://msdn.microsoft.com/zh-cn/library/system.windows.controls.textsearch(v=vs.110).aspx

您可以将TextSearch.TextPath您的ListBox实例(所以搜索此属性,而不是ToString),也可以适用TextSearch.Text于个别ListBoxItem孩子(这样你就可以设置各个元素单独的搜索文本)。

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Window.Resources>
        <XmlDataProvider x:Key="Items" XPath="People">
            <x:XData>
                <People xmlns="">
                    <Person Name="John" Surname="Smith" />
                    <Person Name="Andrew" Surname="Johnson" />
                    <Person Name="Otis" Surname="Everett" />
                    <Person Name="Jesus" Surname="Osborn" />
                </People>
            </x:XData>
        </XmlDataProvider>
    </Window.Resources>
    <StackPanel>
        <TextBlock Text="Searches by a property (Name):" />
        <ListBox ItemsSource="{Binding Source={StaticResource Items}, XPath=*}"
                 TextSearch.TextPath="@Name">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock>
                        <Run Text="{Binding XPath=@Name}" /> <Run Text="{Binding XPath=@Surname}" />
                    </TextBlock>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <TextBlock>Searches by a individual value (number in english):</TextBlock>
        <ListBox>
            <ListBoxItem TextSearch.Text="One">1</ListBoxItem>
            <ListBoxItem TextSearch.Text="Two">2</ListBoxItem>
            <ListBoxItem TextSearch.Text="Three">3</ListBoxItem>
            <ListBoxItem TextSearch.Text="Four">4</ListBoxItem>
        </ListBox>
    </StackPanel>
</Window>

这种行为在实现ItemsControl类(你可以找到其他例子ItemsControl后裔与搜索:ComboBoxDataGrid)。您可以将IsTextSearchEnabled属性设置为true使其起作用。(请参阅http://msdn.microsoft.com/zh-cn/library/system.windows.controls.itemscontrol.istextsearchenabled(v=vs.110).aspx

单级搜索适用于TreeView我想如果要执行多级搜索,应该以编程方式实现搜索。(请参阅http://social.msdn.microsoft.com/Forums/vstudio/en-US/e6d58fcc-4eaa-4bdc-8621-ce24c8efd330/treeview-textsearch

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中的自定义ListView中实现搜索?

来自分类Dev

如何在C ++中实现自定义std集合?

来自分类Dev

如何在sbt中实现自定义监视任务?

来自分类Dev

如何在Android中实现自定义堆栈视图?

来自分类Dev

如何在backand的自定义查询中实现分页

来自分类Dev

如何在keras中实现自定义指标?

来自分类Dev

如何在SwiftUI中实现自定义日历?

来自分类Dev

如何在Blazor中实现自定义验证

来自分类Dev

如何在自定义DataGenerator中实现重新缩放?

来自分类Dev

如何在React中实现自定义光标组件

来自分类Dev

如何在Flutter中实现自定义窗口?

来自分类Dev

如何在Java中实现自定义日期格式?

来自分类Dev

如何在片段中实现自定义视图

来自分类Dev

如何在magento 1.9中实现自定义主题

来自分类Dev

如何在angular js中实现自定义指令?

来自分类Dev

如何在sbt中实现自定义监视任务?

来自分类Dev

如何在 Xcode playgrounds 中实现自定义字体

来自分类Dev

如何在 Scrapy 中实现自定义的 dupefilter?

来自分类Dev

如何在 keras 中实现自定义 GRU

来自分类Dev

如何在 Heron 中实现自定义调度程序?

来自分类Dev

如何在odoo中显示自定义搜索结果?

来自分类Dev

如何在Windows中搜索自定义字符?

来自分类Dev

如何在React中为材料故事的每一列实现自定义搜索远程数据

来自分类Dev

如何在HTML5的内联SVG中读取自定义名称空间节点?

来自分类Dev

如何在Jira中启用自定义字段的内联编辑选项

来自分类Dev

在angularjs中实现Google自定义搜索

来自分类Dev

在iOS中实现Google自定义搜索API

来自分类Dev

ItemsControl 中附加属性的值,在自定义面板实现期间

来自分类Dev

您如何在 CloudFoundry 中定义自定义 DNS 搜索?

Related 相关文章

  1. 1

    如何在Android中的自定义ListView中实现搜索?

  2. 2

    如何在C ++中实现自定义std集合?

  3. 3

    如何在sbt中实现自定义监视任务?

  4. 4

    如何在Android中实现自定义堆栈视图?

  5. 5

    如何在backand的自定义查询中实现分页

  6. 6

    如何在keras中实现自定义指标?

  7. 7

    如何在SwiftUI中实现自定义日历?

  8. 8

    如何在Blazor中实现自定义验证

  9. 9

    如何在自定义DataGenerator中实现重新缩放?

  10. 10

    如何在React中实现自定义光标组件

  11. 11

    如何在Flutter中实现自定义窗口?

  12. 12

    如何在Java中实现自定义日期格式?

  13. 13

    如何在片段中实现自定义视图

  14. 14

    如何在magento 1.9中实现自定义主题

  15. 15

    如何在angular js中实现自定义指令?

  16. 16

    如何在sbt中实现自定义监视任务?

  17. 17

    如何在 Xcode playgrounds 中实现自定义字体

  18. 18

    如何在 Scrapy 中实现自定义的 dupefilter?

  19. 19

    如何在 keras 中实现自定义 GRU

  20. 20

    如何在 Heron 中实现自定义调度程序?

  21. 21

    如何在odoo中显示自定义搜索结果?

  22. 22

    如何在Windows中搜索自定义字符?

  23. 23

    如何在React中为材料故事的每一列实现自定义搜索远程数据

  24. 24

    如何在HTML5的内联SVG中读取自定义名称空间节点?

  25. 25

    如何在Jira中启用自定义字段的内联编辑选项

  26. 26

    在angularjs中实现Google自定义搜索

  27. 27

    在iOS中实现Google自定义搜索API

  28. 28

    ItemsControl 中附加属性的值,在自定义面板实现期间

  29. 29

    您如何在 CloudFoundry 中定义自定义 DNS 搜索?

热门标签

归档