Привязка XML-файла к UserControl - PullRequest
0 голосов
/ 27 октября 2010

Я хочу связать данные из моего 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 Ответ

1 голос
/ 27 октября 2010

Ваш XPath не возвращает атрибут, который содержит значение, к которому вы пытаетесь привязаться. Попробуйте вместо этого:

<Grid x:Name="LayoutRoot">
    <Rectangle x:Name="rect" Fill="{Binding XPath=color/@value}" />
    <TextBlock x:Name="line1" Text="{Binding XPath=speed/@value}" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...