• 締切済み

〔C#〕WPFのディープコピーをするには?

オブジェクトのディープコピーは、以下のURLを参考にして作成しました。 http://d.hatena.ne.jp/tekk/20100131/1264913887 WPF(UserControl)で作成したViewに対して上記URLのDeepCopy()関数を実行すると、 実行時に次のエラーが出てしまいます。 「'System.Windows.UserControl'はシリアル化可能として設定されていません。」 調べますと、Sezializable属性を付ければ良いとあるのですが、 該当のWPF(xaml)のcsファイル(XXX.xaml.cs)のクラスの宣言の上に以下のように付けましたが、 変わらずエラーが出てしまいます。 [Serializable] public partical class XXX { ・・・ どのようにしたら、上記のエラーを解決し、Viewのディープコピーができるのでしょうか? とても困っています。 ご教授よろしくお願いいたします。

みんなの回答

回答No.1

UserControlであれば,XamlWriterとXamlReaderを使ってある程度コピー可能です。 ただし,外部のオブジェクトのバインドがどこまで復元されるかまでは確認していません。

関連するQ&A