2010-10-27 85 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