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

UserControl:

<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