C# 关于当ObservableCollection增删查改元素时,触发事件用例

这篇具有很好参考价值的文章主要介绍了C# 关于当ObservableCollection增删查改元素时,触发事件用例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ObservableCollection 类提供了一种实时监测集合变化的机制,可以通过订阅 CollectionChanged 事件来响应集合的添加、移除和重置等变化。

using System;
using System.Collections.ObjectModel;
using System.Collections.Specialized;

class Program
{
    static void Main()
    {
        ObservableCollection<string> collection = new ObservableCollection<string>();

        // 订阅 CollectionChanged 事件
        collection.CollectionChanged += Collection_CollectionChanged;

        // 向集合中添加元素
        collection.Add("item 1");
        collection.Add("item 2");
        collection.Add("item 3");

        // 从集合中移除元素
        collection.Remove("item 2");

        // 清空集合
        collection.Clear();
    }

    static void Collection_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
    {
        if (e.Action == NotifyCollectionChangedAction.Add)
        {
            Console.WriteLine("元素已添加:");

            foreach (string item in e.NewItems)
            {
                Console.WriteLine(item);
            }
        }
        else if (e.Action == NotifyCollectionChangedAction.Remove)
        {
            Console.WriteLine("元素已移除:");

            foreach (string item in e.OldItems)
            {
                Console.WriteLine(item);
            }
        }
        else if (e.Action == NotifyCollectionChangedAction.Reset)
        {
            Console.WriteLine("集合已重置");
        }
    }
}

Tips
在 ObservableCollection 中,如果你更改了集合中的元素,例如修改了元素的属性,这将会触发 CollectionChanged 事件。

但是如果你只是替换了集合中的元素(即通过索引直接赋值),这将不会触发 CollectionChanged 事件文章来源地址https://www.toymoban.com/news/detail-791847.html

到了这里,关于C# 关于当ObservableCollection增删查改元素时,触发事件用例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于使用C#调用Win32API,抓取第三方句柄,模拟鼠标点击,键盘发送事件(C2Prog.exe)

    因为最近工作需要用就把基本知识整理了一下 主要操作这个软件写程序和选配置   下面例子和Win32以及自己封装的库全在工程文件里面 2023.7.10 :以前写的代码丢了重新写了一下优化了不少 ,所以特此更新一下 以前是1.7的版本目前用的是1.9版本有些不一样需要注意  这里放最新

    2024年02月14日
    浏览(35)
  • JavaScript 鼠标事件监听&&触发时机&&触发顺序

    有时间整理下鼠标的监听事件,目前汇总到的鼠标监听事件以下10个: 目录 1. click 2. dblclick 3.contextmenu 4.mousedown 5.mouseup 6.mouseenter 7.mouseleave 8.mouseover 9.mouseout 10.mousemove 先说下触发时机和作用键(左键、右键) 点击事件,只有左键生效 双击事件,只有左键生效 跟click事件对比

    2024年02月08日
    浏览(45)
  • js触发点击事件(模拟自动点击事件)

    进入页面触发点击事件 js 派发事件 Event.initEvent()已弃用 添加链接描述

    2024年02月16日
    浏览(45)
  • 【Unity功能】鼠标移动触发事件方法

     方法一:方法触发 注意:UGUI不能使用该方法 方法二:Event Trigger 注意:需要场景中包含EventSystem(在添加trigger组件后自动添加);UGUI可以使用 方法三:

    2024年01月25日
    浏览(26)
  • vue2:鼠标触发各类事件

    移动端 pc端 template javascript 如何获取鼠标的x,y坐标 这就要利用事件回调中的 e.targetTouches 属性了。 如何获取鼠标每次移动的差值 当鼠标移动时,如何计算得出,当前鼠标位置与上一次鼠标位置的差值呢? 例如,当前鼠标位置为(1,2),上一次鼠标位置为(0,0),差值就是: x:1,

    2024年04月13日
    浏览(29)
  • vue子元素点击事件与父元素点击事件冲突 子元素点击事件不触发

    在vue项目中,子元素有点击事件,父元素也有点击事件,当点击子元素时往往触发的是父元素的点击事件,产生冲突,怎样解决这个问题呢? 解决方法:使用vue中的事件修饰符 vue为 v-on 提供了 .stop、.prevent、.self、.once等事件修饰符,当遇到子元素与父元素的事件冲突,就要

    2024年02月14日
    浏览(28)
  • 基于MFC的键盘响应(热键触发事件)

    通过输入 CTRL + G 组合按键完成文件选择框弹出: 目标: 按下 CTRL + G ,弹出文件选择框 过程: 头文件添加消息申明 cpp文件添加消息映射 OnInitDialog添加全局热键注册 实现热键功能函数 MFC键盘宏定义: 功能键: VK_TAB : Tab键。 VK_SPACE : 空格键。 VK_BACK : 退格键(回退键)。

    2024年02月04日
    浏览(35)
  • disable 禁用元素后无法触发点击事件

    业务需求点击被禁用的输入框触发事件 在被禁用元素上套一层div div上绑定事件 原本是不需要加事件穿透即可触发 但是最近谷歌更新触发不了 加一个事件穿透就好了 核心代码 style=“pointer-events:none” 事件穿透 整体代码

    2024年02月11日
    浏览(32)
  • 微信小程序数据绑定和事件触发

    数据绑定和修改 微信小程序数据绑定是指将数据和视图进行关联,当数据发生变化时,视图也会相应地发生变化。微信小程序数据绑定主要有以下几种方式: 双向绑定:双向绑定是指数据和视图之间的双向关联,当数据发生变化时,视图也会相应地发生变化,反之亦然。在

    2024年02月10日
    浏览(45)
  • Unity射线以及相关点击触发事件的归纳

    例如:最近在做一些Unity的小游戏需要,需要用到射线检测和点击事件等操作,虽然都是一些很基础的东西但是也折腾了一会,主要有些细节没处理好就会导致不触发,写篇博客学习记录一下吧。   这个是最常用的,常用于3D游戏中通过射线检测来获取鼠标点击的位置来控

    2024年02月01日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包