2011-08-11 7 views
1

私はAccountingソフトウェアパッケージを作成しています。私たちのアプリは、ユーザーがフォームデザインを変更し、将来の使用のために保存することができます。このため私のクライアントはシリアル化を提案しました。問題は、XamlWriterをサポートするSilverlight 4を使用していることです。そこでxamlをxmlとしてデータベースに格納し、それをuicontrolsに変換して取得することにしました。私は次のコードを使用し、エラーが発生します。エラーは次のとおりです。Silverlightでのシリアル化

イベントハンドラはXamlReaderではサポートされていません。

さらに、グリッドの最初の行のコントロールのみを変換します。他のコントロールは表示されません。

これは私が使用しているコードです:

XDocument doc = XDocument.Load("/Sampletwo;component/MainPage.xaml"); 
IEnumerable<XElement> childElements = 
from el in doc.Elements() 
select el; 
foreach (XElement el in childElements) 
store = el.LastNode.ToString(); 

戻るUIコントロールへ:

UIElement tree = (UIElement)XamlReader.Load(store); 
grdLayoutRoot.Children.Add(tree); 
+0

あなたはXML名前空間も同様に書き出していますか? –

+0

あなたの説明にコードを提供するための+1。 –

答えて

1

あなたがXamlReader.Load上を使用してXAMLファイルの個々の部分をシリアル化しようとしているように見えますXMLの個々のスニペット。 XMLネームスペース(たとえば、親ページから)が含まれていないため、これは機能しません。

あなたが読み込んだXamlの各部分は、(ページのように)自己完結型である必要があります。

XAML内のコントロールにイベントが定義されている場合、コードビハインドが存在しないため、ローダーはXamlに属するコードビーを解消するコンテキストがないため、Event handler is not supported by XamlReaderエラーメッセージを説明します。負荷を使用して)。