如何从 ObservableCollection C# 获取数据

how to get data from ObservableCollection C#

我在一个 class.

中使用函数 ObservableCollection

定义 public 也可以在另一个 class 中访问。

public ObservableCollection<Node> _nodes;
public ObservableCollection<Node> Nodes
{
     get { return _nodes ?? (_nodes = new ObservableCollection<Node>()); }
}

我想在另一个class中调用这个ObservableCollection,如何正确调用?

我已经在 Whosebug 上尝试过这个主题,但显示 Node 是空的。

所以你有你的 Class A,其中包含你的 "nodes"。

要从 Class B 访问节点,需要做一些事情:

  • Class A 需要是一个 public class 可以实例化为另一个 class.
  • 的成员
  • 在ClassB中,必须实例化一个ClassA:

    ClassB {
    
        _private ClassA instanceOfA;
    
        public ClassB() {
            istanceOfA = new ClassA();
        }
    
        private void DoWork()
        {
            foreach(var node in instanceOfA.Nodes)
            {
                // Do Something
            }
        }
    }
    

这将使您能够访问 ClassA 的 public 个节点 属性。

另一个注意事项 - 看起来您使用的是 getter/setter,但在那种情况下您的第一个

    public ObservableCollection<Node> _nodes;

可以改为

    private ObservableCollection<Node> _nodes;

正确封装它。然后你可以添加一个 setter 到你的 public 属性 (除非它是只读的):

    public ObservableCollection<Node> Nodes
    {
        get { return _nodes ?? (_nodes = new ObservableCollection<Node>()); }
        set {_nodes = value; }
    }