我有自己的MyTreeNode
来自TreeNode
的课程{/ 1}}。
public class MyTreeNode : System.Windows.Forms.TreeNode
{
[Localizable(true)]
public bool Foo { get; set; }
}
我尝试克隆节点:
MyTreeNode myTreeNode = new MyTreeNode();
myTreeNode.Foo = foo;
//
//And here is the problem, all fields have been copied to the new node but Foo
//
MyTreeNode newNode = (MyTreeNode)myTreeNode.Clone();
结果,newNode
有空Foo
字段。我该如何解决这个问题?
答案 0 :(得分:4)
如果您希望在调用Foo
时复制Clone()
,则需要覆盖Clone()
方法并添加逻辑来执行此操作。
您需要做的就是将其添加到MyTreeNode
班级:
public override object Clone()
{
var obj = (MyTreeNode)base.Clone();
obj.Foo = this.Foo;
return obj;
}
答案 1 :(得分:1)
在MyTreeNode类中尝试这样的事情
public override object Clone()
{
object objReturn = base.Clone();
((MyTreeNode)objReturn).Foo = this.Foo;
return objReturn;
}