iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >在WPF中合并两个ObservableCollection集合
  • 944
分享到

在WPF中合并两个ObservableCollection集合

2024-04-02 19:04:59 944人浏览 独家记忆
摘要

WPF中的ObservableCollection是一个非常常用的集合对象,我们可以通过将它绑定到ListBox之类的集合控件上时,当集合发生变更时,会同步更新到界面上。但是,有的时

WPF中的ObservableCollection是一个非常常用的集合对象,我们可以通过将它绑定到ListBox之类的集合控件上时,当集合发生变更时,会同步更新到界面上。但是,有的时候我们需要合并两个集合,将他们的拼接后显示在界面上,此时该何如做呢?

乍一看来,这是个非常简单的事情,.net的BCL本身就提供了IEnumerate集合连接函数——Concat,可以通过它轻松连接两个集合。但当你使用它连接集合并果呈现到界面上时,就会发现一个问题——虽然它可以将当前结果拼接起来显示,但却不会同步显示集合的变更。

原因非常简单:界面之所以能同步ObservableCollection的结果,是因为它实现了INotifyCollectionChanged接口。而用Concat连接后的新集合却是没有实现这个接口的。虽然自己实现一个这样的合并后的可通知集合并不难,但.Net中本身就已经提供了这样一个集合——CompositeCollection,这里就不重复造轮子了。代码示例如下:

    void testCompositeCollection()
    {
        var cmpc = new CompositeCollection();

        var numbers = new ObservableCollection<int>();
        var lines = new ObservableCollection<string>();


        cmpc.Add(new CollectionContainer() { Collection = numbers });
        cmpc.Add(new CollectionContainer() { Collection = lines });

        listBox.ItemsSource = cmpc;

        foo(numbers);
        foo(lines);
    }

    async void foo(ObservableCollection<string> lines)
    {
        for (int i = 0; i < 10; i++)
        {
            await Task.Delay(800);
            lines.Add("Line " + 2 * i);
        }
    }

    async void foo(ObservableCollection<int> numbers)
    {
        for (int i = 0; i < 10; i++)
        {
            await Task.Delay(1000);
            numbers.Add(i);
        }
    }

到此这篇关于WPF合并ObservableCollection的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 在WPF中合并两个ObservableCollection集合

本文链接: http://www.lsjlt.com/news/152258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在WPF中合并两个ObservableCollection集合
    WPF中的ObservableCollection是一个非常常用的集合对象,我们可以通过将它绑定到ListBox之类的集合控件上时,当集合发生变更时,会同步更新到界面上。但是,有的时...
    99+
    2024-04-02
  • 在 PHP 中合并两个数组
    本文将介绍在 PHP 中组合两个数组的不同方法。 在 PHP 中使用 array_merge()函数合并两个数组 我们可以使用 array_merge() 函数来合并两个数组。这个函数可以合并两...
    99+
    2024-02-27
  • jdk8使用stream实现两个list集合合并成一个(对象属性的合并)
    目录一、前言二、示例示例1:java8 合并两个 list<map>示例2:java8 合并两个 list<T>示例3:java8 合并两个 list<T>,集合个数前者小于后者,要...
    99+
    2024-04-02
  • java 合并两个Map
    在开发中,有时需要将多个Map合并成一个Map,接下来就举例说明: 我的使用场景:以map2中已经存在的key的值为准 把需要的字段从一个Map中一个个set到另一个Map中 Map map1 = n...
    99+
    2023-09-01
    java
  • mysql 如何获取两个集合的交集/差集/并集
    mysql的常见场景,获取两个数据集的交集和差集 步骤 1、两个集合的结构要一致,对应的字段数,字段类型 2、将两个集合用 UNION ALL 关键字合并,这里的结果是有重复...
    99+
    2024-04-02
  • 【Java】求两集合的交集、并集、差集
    一、内置函数实现 1、removeAll方法:从list中删除指定集合中包含的所有元素。 2、retainAll方法:从list中删除指定集合中不包含的所有元素。 3、addAll方法:用来向Set集合添加另一个集合对象所包含的所有内容。 ...
    99+
    2023-08-18
    java
  • 如何在python中合并两个有序列表
    本篇文章给大家分享的是有关如何在python中合并两个有序列表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。测试用例示例1输入:l1 = [1,2,4], l2 = [1,3,...
    99+
    2023-06-14
  • python中如何合并两个列表
    本篇内容介绍了“python中如何合并两个列表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!合并方法:1、用“+”操作符合并,语法“list...
    99+
    2023-07-04
  • mysql怎么合并两个表
    mysql怎么合并两个表?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql合并两个表的方法:首先确认这两张表的字段必...
    99+
    2024-04-02
  • oracle怎么合并两个表
    在Oracle中,可以使用INSERT INTO SELECT语句来合并两个表。假设有两个表:table1和table2,它...
    99+
    2023-08-25
    oracle
  • php中两个数组如何合并
    本篇内容介绍了“php中两个数组如何合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在PHP开发中,经常会遇到需要合并两个或多个数组的情况...
    99+
    2023-07-06
  • access中怎么合并两个字段
    在SQL中,可以使用CONCAT函数来合并两个字段。具体语法如下: SELECT CONCAT(column1, &...
    99+
    2024-03-14
    access
  • C#中怎么找到两个集合的交集
    在C#中,可以使用LINQ(Language-Integrated Query)来找到两个集合的交集。下面是一个示例代码: usin...
    99+
    2024-04-02
  • 如何合并两个 MySQL 表?
    要合并两个 MySQL 表,请使用以下语法 -INSERT IGNORE INTO yourTableName1 select *from yourTableName2;我们将创建两个包含一些记录的表。之后,合并过程将开始使用上述...
    99+
    2023-10-22
  • java两个list怎么合并
    您可以使用addAll()方法将一个List的所有元素添加到另一个List中。以下是一个示例代码:```javaList list1...
    99+
    2023-08-15
    java list
  • 怎么在python中判断两个集合是否相等
    怎么在python中判断两个集合是否相等?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明可以使用 == 运算符判断两个集合是否相等(包含相同的元素),即判断集合 a 和集...
    99+
    2023-06-15
  • python如何遍历两个集合
    这篇文章主要介绍了python如何遍历两个集合,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。遍历两个集合names = ...
    99+
    2024-04-02
  • java 获取两个List集合的交集
    获取两个List集合的交集 可以使用Java中的retainAll方法来获取两个List的交集: 假设有两个List类型的集合list1和list2,代码如下: List list1 = new ArrayList();list1.add(...
    99+
    2023-08-17
    java list 开发语言
  • JavaScript中怎么合并两个Json对象
    这篇文章给大家介绍JavaScript中怎么合并两个Json对象,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体如下:$.mergeJsonObject = fu...
    99+
    2024-04-02
  • php如何合并两个对象
    在php中使用array_merge()函数合并两个对象,具体方法如下:首先,新建一个php项目文件;php项目文件新建好后,在文件中分别定义两个对象;$objectA = new demo();$object...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作