只是想知道人们会怎么做.假设我有一个类创建并填充Treeview,然后将其添加到Winform.
我有另一个依赖于Treeview中数据的类.因此,例如,当用户单击Treeview中的特定节点时,类b需要该节点保存的信息,以便它可以执行某些计算并显示结果.
简单地将对Treeview的引用传递给第二个类,或仅仅传递它需要的数据会更好吗?或者可以将Treeview设置为静态并使用事件,以便新类可以在单击节点时直接访问树视图?
谢谢.
我会在持有树视图的类中引发一个事件.也就是说,定义一个委托和您的类具有的事件.然后,依赖类可以订阅该事件并对事件中包含的数据进行操作.据我了解你的问题,依赖类不需要对树视图做任何事情,因此不应该知道树视图.
public delegate void YouControlHandler(int relevantData1, string relevantData2);
public class ClassContainingTreeView
{
public event YouControlHandler TreeViewClickedEvent;
public void OnTreeViewClicked(object sender, EventArgs)
{
// Handle request locally first and extract relevantData1/2
if(TreeViewClickedEvent != null)
TreeViewClickedEvent(relevantData1, relevantData2);
}
}
public class DependingClass
{
ClassContainingTreeView yourObject = new ClassContainingTreeView();
public DependingClass()
{
yourObject.TreeViewClickedEvent += new YouControlHandler(EventHandler);
}
protected void EventHandler(int relevantData1, string relevantData2)
{
// Handle event
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6577 次 |
| 最近记录: |