2010-10-27 69 views
0

我想將XML文件中的數據綁定到我的userControl。將XML文件綁定到UserControl

到目前爲止,我有:

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> 

用戶控件:

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

而且MainWindow.xaml

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

但是綁定不起作用。你能指出我做錯了什麼嗎?

回答

1

您的XPath未返回包含您嘗試綁定的值的屬性。試試這個:

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

對!我忘了這是一個屬性!謝謝。 – Vitalij 2010-10-27 17:57:59