0

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 問題が発生します。

4

2 に答える 2

-1

これをどのように解決したか: 1.コントロールから継承するユーザーコントロールを作成します 2.これをコンストラクターに追加します

static int counter = 0;
public TestControl()
{
    InitializeComponent();
    this.Name += counter.ToString();
    counter ++;
}
于 2015-06-29T10:21:53.223 に答える