XamlReader: exception Name/x:Name
Bonjour,
j'ai besoin de sérialiser puis de désérialiser un usercontrol, pour cela, j'ai voulu utilisé XamlWriter/XamlReader
J'ai fais un usercontrol tout simple:
Code:
1 2 3 4 5 6 7 8
|
<UserControl x:Class="UCTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Button x:Name="btnTest" Content="Hello !" Width="50" Height="25"/>
</Grid>
</UserControl> |
et voici mon code pour serialiser/déserialiser
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
'nouveau usercontrol
Dim uc As New UCTest()
'on sérialise le usercontrol
Dim str As String = Markup.XamlWriter.Save(uc)
'traitement ...
Dim stringReader As New IO.StringReader(str)
Dim xmlReader As Xml.XmlReader = Xml.XmlReader.Create(stringReader)
'on déserialise le usercontrol
Dim obj = CObj(Markup.XamlReader.Load(xmlReader)) ' -> exception |
et j'obtiens l'exception suivante:
Citation:
La valeur 'btnTest' ne peut pas être attribuée à la propriété 'Name' de l'objet 'System.Windows.Controls.Button'. Impossible d'inscrire en double Name 'btnTest' dans cette portée.
En sachant que pour tester, je n'ai fais aucune modification sur str (le usercontrol sérialiser)
J'obtiens la même erreur si dans le usercontrol, a la place de "x:Name" je met simplement "Name".
Et je n'ai pas d'erreur s'il je ne spécifie pas de "Name"
La chaine que j'obtiens après le XamlWriter est :
Citation:
<UCTest xmlns="clr-namespace:WpfApplication;assembly=WpfApplication" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"><av:Grid><av:Button Name="btnTest" Width="50" Height="25">Hello !</av:Button></av:Grid></UCTest>