如何从 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; }
}
我在一个 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; }
}