ObservableCollection在中的用途是什么.网

推荐答案

ObservableCollection是一个集合,它允许集合外部的代码在集合发生更改(添加、移动、删除)时能够察觉.它在WPF和Silverlight中大量使用,但其使用并不限于此.代码可以添加事件处理程序,以查看集合何时发生了更改,然后通过事件处理程序做出react ,进行一些额外的处理.这可能是更改UI或执行其他操作.

下面的代码实际上没有做任何事情,只是演示了如何在类中附加一个处理程序,然后使用事件参数以某种方式对更改做出react .WPF已经有许多操作,比如刷新内置的UI,因此您在使用ObservableCollects时可以免费获得这些操作

class Handler
{
    private ObservableCollection<string> collection;

    public Handler()
    {
        collection = new ObservableCollection<string>();
        collection.CollectionChanged += HandleChange;
    }

    private void HandleChange(object sender, NotifyCollectionChangedEventArgs e)
    {
        foreach (var x in e.NewItems)
        {
            // do something
        }

        foreach (var y in e.OldItems)
        {
            //do something
        }
        if (e.Action == NotifyCollectionChangedAction.Move)
        {
            //do something
        }
    }
}

.net相关问答推荐

为什么Linq中的运算符逻辑不匹配结果,当值为0或在VB. NET中没有

部署时如何控制红隼端口?

使用 SSH.NET 查找具有特定文件名的最新 SFTP 文件

string.Format 如何处理空值?

如何 Select 数据表中列的最小值和最大值?

具有透明背景且包含不透明控件的 WPF 窗口

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") 返回上午时间而不是下午时间?

C# 属性实际上是方法吗?

如果需要,将方案添加到 URL

什么是 Hashtable 的通用版本?

在 .NET 中查找下一个 TCP 端口

C# 测试字符串是否为整数?

有没有办法从方法返回匿名类型?

如何将 System.Type 转换为其可为空的版本?

单元测试 C# 保护方法

如何在多个解决方案之间共享相同的 Resharper 设置,无需人工干预?

无法加载文件或程序集System.ValueTuple

从 'System.Int32' 到 'System.Nullable`1[[System.Int32, mscorlib]] 的无效转换

如何向 C# Winforms 中的标签添加提示或工具提示?

如何在不使用 3rd 方库的情况下登录 C#?