xaml ファイルの逆シリアル化に問題があり、次のエラーが発生します。
私のコードは次のとおりです。
private void SerializeToXML()
{
FileStream filestream = File.Create(@"H:\test1.xaml");
StreamWriter streamwriter = new StreamWriter(filestream);
foreach (ListViewItem Item in slideListView.Items)
{
string mystrXAMLWrite = XamlWriter.Save(Item.Tag);
streamwriter.Write(mystrXAMLWrite);
}
streamwriter.Close();
filestream.Close();
}
private void DeSerialize()
{
FileStream filestream = File.Open(@"H:\test1.xaml", FileMode.Open);
XamlReader reader = new XamlReader();
slideListView = (ListView)reader.LoadAsync(filestream);
}
保存後に XAML ファイルに移動し、slideCanvas を slideCanvas1 に、ContextMenu を ContextMenu1 に変更するなど、問題のあるさまざまな名前を変更すると、読み込まれます。しかし、明らかにこれは解決策ではありません。また、値に数値が追加されているため、ロードされたものが正しいコードビットを指していないことも意味します。
ここで何をする必要があるか知っている人はいますか?
更新しました
これは、1 つのスライド オブジェクトを保存するときに生成される xaml です。
<Slide imageZIndex="0" editText="False" ClipToBounds="True" xmlns="clr-namespace:StoryboardTool;assembly=StoryboardTool" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><av:Canvas Background="#FFFFFFFF" Name="slideCanvas" /></Slide>
たとえば、これをスライドオブジェクトに配置しようとすると
Var obj = (Slide)reader.LoadAsync(filestream);
この XmalParseExceptionOccured 問題が発生します。