none
请教关于wpf深拷贝的问题 RRS feed

  • 常规讨论

  • 使用wpf如何深拷贝,有现成的类库吗?

    1、我做的尝试,我之前写了一个深拷贝的类,不过在遇到UIElement的时候,是有构造函数的,如何还要对构造函数进行判断就太麻烦了

    2、我尝试用xamlReader深拷贝,无奈用户控件有相同的name的,所以会报错,且速度太慢了

    有没有现成的开源类库,急求!

    2012年7月8日 5:02

全部回复

  • 试试使用System.ICloneable.Clone,深克隆的话,你可能需要先序列化控件,再deserialising 一下,参考一下代码:

    Public Function Clone() As Object Implements System.ICloneable.Clone
            {
    
                Type myType = _objectToClone.GetType();
               
                if (!myType.IsSerializable)
                {
                    throw new ArgumentException("The type must be serializable.");
                }
                IFormatter formatter = new BinaryFormatter();
                Stream stream = new MemoryStream();
                using (stream)
                {
                    formatter.Serialize(stream, _objectToClone);
                    stream.Seek(0, SeekOrigin.Begin);
                    return (Canvas)formatter.Deserialize(stream);
                }
               
            }

    2012年7月11日 8:40