阻止 ItemsControls 共享过滤器

2024-05-05

我有两个 ItemsControl,一个是 ListView,另一个是我正在开发的自定义控件。

我已将两个控件的 ItemsControl.ItemsSource 属性设置为同一个 IEnumerable 对象,在本例中为 List。

我将筛选器应用于自定义控件的 ItemsControl.Items 属性 (this.Items.Filter = myFilter),并且我的控件按预期刷新,仅显示与筛选器匹配的项目。

但是,对其 ItemsControl.ItemsSource 属性使用相同 IEnumerable 对象的 ListView 也会刷新,仅显示与我应用于自定义控件的筛选器相匹配的项目。

谁能告诉我如何防止自定义控件中的过滤器影响列表视图中的项目?


我能想到的第一件事是,不需要对您所描述的内容进行任何更大的修改,只需将 ItemsSource 集合包装在 XAML 中分配它们的 CollectionViewSource 中即可。

<DockPanel>

    <Button DockPanel.Dock="Top"
            Content="Filter Lowercase Names"
            Click="OnFilterClick"/>

    <ListView x:Name="uiListView">
        <ListView.Resources>
            <CollectionViewSource x:Key="ItemsCollection"
                                  Source="{Binding Names}" />
        </ListView.Resources>
        <ListView.ItemsSource>
            <Binding Source="{StaticResource ItemsCollection}" />
        </ListView.ItemsSource>
    </ListView>

    <ListBox x:Name="uiListBox"
             ItemsSource="{Binding Names}" />

</DockPanel>

然后是过滤逻辑:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();

        Names = new List<string>();

        Names.Add("Robert");
        Names.Add("Mike");
        Names.Add("steve");
        Names.Add("Jeff");
        Names.Add("bob");
        Names.Add("Dani");

        this.DataContext = this;
    }
    public List<String> Names { get; set; }

    private void OnFilterClick(object sender, RoutedEventArgs e)
    {
        uiListView.Items.Filter = x => x.ToString()[0] == x.ToString().ToUpper()[0];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阻止 ItemsControls 共享过滤器 的相关文章

随机推荐

  • 无法验证主机真实性

    我第一次做git pull 在git中提示无法确定主机的真实性 与我生成的私钥相比 RSA密钥指纹不正确 我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹 我遇到了类似的问题 这意味着远程主机未知 不受信任 修复方法
  • 如何将div附加到其他div中

    我想在 mytext div 中附加 div 但它正在更新 div 外部的文本 jj 指 body 元素 function var mydiv div min div
  • Apache mod_rewrite 内部到不同的端口

    是否可以使用 mod rewrite 内部重定向 因此地址栏中的 url 不会更改 到同一主机上的不同端口 例如 http host com 8080 gt http host com 9999 myapplication param va
  • 构建可扩展 Web 应用程序的书籍? (数据库性能/调优、网络、一般性能等)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从计算机科学专业毕业并作为一名从事 Web 应用程序的软件工程师进入 现实世界 后 我对如何正确扩展 W
  • Sonarqube如何正确配置gradle子项目?

    我的 gradle 项目结构如下所示 geode core geode lucene extensions geode modules extensions geode modules session For extensions因此 子项
  • 从有序结果集中查找“运行”行

    我试图找出一种方法来识别满足某些条件的 运行 结果 按顺序连续行 目前 我正在订购结果集 并通过眼睛扫描特定模式 这是一个例子 SELECT the date name FROM orders WHERE the date BETWEEN
  • 了解 Mac 上的 Oracle Java

    我在 OS X 上使用 Java 很多很多年了 最近当 Apple 停止默认包含 Java 时 我放弃了操作系统并为我安装了它 当然是 Apple 的版本 现在我使用的是 OS X 10 8 并且需要安装 Java 7 因此我刚刚获得了 D
  • 如何在 Express 4.0 中发送 Flash 消息?

    因此 我的 Web 应用程序需要身份验证 并且我有一个注册页面 如果用户尝试使用数据库中已有的电子邮件进行注册 我想向他们显示一条错误消息 我正在尝试在 html 端使用此代码来执行此操作 div class alert alert dan
  • 如何将 BufferedImage 转换/转换为图像?

    我想转换一个BufferedImage to an java awt Image 我的源图像是 tif 所以我使用 JAI 将其读取为PlanarImage PlanarImage 源 JAI create 文件加载 IMG DIR tag
  • 单选按钮列表 OnSelectedIndexChanged

    我正在寻找处理 ASP net RadioButtonList 后面的 C 代码 上选择的索引更改的最佳方法 我有 3 个列表项 对于第一个 我希望它在页面上显示隐藏的 asp textbox 而其他 2 个将隐藏文本框 asp net s
  • 开发类似 python 的小型语言时的缩进控制

    我正在使用 flex byacc 用于词法和解析 和 C 开发一种类似 python 的小型语言 但我有一些关于范围控制的问题 就像 python 一样 它使用空格 或制表符 进行缩进 不仅如此 我还想实现索引中断 例如 如果您在另一个 w
  • C#中使用私有变量有什么好处

    示例代码 替代代码如下 person cs using System class Person private string myName N A Declare a Name property of type string public
  • 是否可以使用 S3 进行 Flash 伪流?

    我一直在使用 S3 来存储和提供 FLV 和 MP4 视频 它效果很好 但内容是渐进下载的 我想知道是否有可能让所谓的 伪流 与 S3 一起使用 伪流允许观看者在下载完整视频之前在视频中向前搜索 并仅将必要的位发送到 Flash 播放器 我
  • Excel 中的样条插值

    我会让这个问题变得简单明了 因为我的截止日期已经到了 在为我的部分做一些报告时 我到达了可以真正在 Excel 中使用插值的部分 现在 我从未对其函数或一般的 VBA 进行过任何练习 那么 有没有一个地方我可以 或者你们中的任何人都知道一些
  • 从另一列计算出的列?

    给出下表 id value 1 6 2 70 有没有办法添加根据同一个表中的另一列自动计算的列 与 VIEW 类似 但属于同一个表的一部分 举个例子 calculated将是一半value Calculated应该会自动更新value变化
  • ASP.NET Web 服务中的 XML 文档中存在非法字符

    我要问并回答我自己的问题 我希望没人介意 但我认为这可能对其他人有用 如果您设置的 ASP NET Web 服务返回的对象包含对 XML 无效的字符 则在将对象序列化为 SOAP xml 并且客户端尝试反序列化该 xml 后 将会引发异常
  • 如何将图像存储在网站根目录之外

    我希望用户上传的所有图像都保存在我的网站目录之外 让我为大家解释一下 假设我有一个网站部署在服务器中 目录路径是 e g D TestWeb 目前我添加了一些其他目录来存储图像 D TestWeb imgProfile D TestWeb
  • 32位机器如何计算双精度数

    如果我只有32位机器 CPU如何计算双精度数 这个数字是 64 位宽 FPU 如何处理它 更普遍的问题是 如何计算比我的 alu 更宽的东西 不过我完全理解整数方式 您可以简单地split https stackoverflow com q
  • LINQ Group By 投影成非匿名类型?

    我有以下 LINQ 示例 var colorDistribution from product in ctx Products group product by product Color into productColors select
  • 阻止 ItemsControls 共享过滤器

    我有两个 ItemsControl 一个是 ListView 另一个是我正在开发的自定义控件 我已将两个控件的 ItemsControl ItemsSource 属性设置为同一个 IEnumerable 对象 在本例中为 List 我将筛选