2010-10-27 4 views
0

Je souhaite lier les données de mon fichier XML à mon userControl.Liaison d'un fichier XML à un UserControl

Jusqu'à présent, j'ai:

fichier XML:

<?xml version="1.0" encoding="utf-8"?> 
<testData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <pumps> 
     <pump> 
      <speed value="1200"/> 
      <color value="Black"/> 
      <heightAndWidth size="50"/> 
     </pump> 
    </pumps> 
</testData> 

App.xaml

<Application.Resources> 
    <XmlDataProvider x:Key="testDataDataSource" Source="Desktop\testData.xml" d:IsDataSource="True"/> 
</Application.Resources> 

UserControl:

<Grid x:Name="LayoutRoot"> 
    <Rectangle x:Name="rect" Fill="{Binding XPath=color}" /> 
    <TextBlock x:Name="line1" Text="{Binding XPath=speed}" /> 
</Grid> 

Et MainWindow.xaml

<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource testDataDataSource}}"> 
    <local:RectangleControl DataContext="{Binding Mode=Default, XPath=/testData/pumps/pump}" /> 
</Grid> 

Cependant, la liaison ne fonctionne pas. Pourriez-vous indiquer ce que je fais de mal?

Répondre

1

Votre XPath ne renvoie pas l'attribut contenant la valeur à laquelle vous essayez de vous lier. Essayez ceci à la place:

<Grid x:Name="LayoutRoot"> 
    <Rectangle x:Name="rect" Fill="{Binding XPath=color/@value}" /> 
    <TextBlock x:Name="line1" Text="{Binding XPath=speed/@value}" /> 
</Grid> 
+0

Droit! J'ai oublié que c'est un attribut! Merci. – Vitalij

Questions connexes