c# - 如何提供实现 INotifyCollectionChanged 的​​只读集合

标签 c# vb.net

有没有一种有效的方法来提供 Enumarable<SomeType>或实现 INotifyCollectionChanged 但只能从提供类内部更改的集合。

以下示例显示了我的意思,但缺点是调用者可以强制转换 IEnumerable<SomeType>返回然后操纵我的内部收藏,这是我真正不喜欢的:

public class DemoClass{

    ObservableCollection<SomeType> m_collection=
                                   new ObservableCollection<SomeType>();

    public IEnumerable<SomeType> SomeTypeInstances{
         get{return m_collection;}
    }

    private void AMethod(){
        // Here I can work with m_collection            
    }

}

是否有一种简单的方法,也许使用 ObservableCollection,或者是否有必要编写一个实现 IEnumerable<SomeType> 的包装器和INotifyCollectionChanged然后将 collectionchanged-evnets 转发到目的地?

最佳答案

关于c# - 如何提供实现 INotifyCollectionChanged 的​​只读集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356896/

相关文章:

c++ - 好。将Leap带入C++。正确的决定?

vb.net - 从 url 保存图像

c# - 使用 WPF 比使用 Windows 窗体更好吗?

vb.net - 表单控件数组上的线程安全调用

.net - 为什么 AndAlso 不能替代 And

c# - Microsoft Help Viewer 可以作为一个独立的应用程序使用吗?

c# - IoC (Ninject) 和工厂

c# - 如何快速将非常大的文件呈现(不打开)到 UI 组件(TextBox)中

c# - 从 C++ native 插件更新 Vector3 数组

c# - 从 .Net Core 2.0 中的 IActionFilter 获取 HttpStatus 代码