Как связать содержимое XML-файла с меткой, хранящейся на URL

У меня есть XML-файл, я пытаюсь привязать его к метке, но пока не удалось, я использовал xmldataprovider для его привязки. Вот код для шаблона, который я использовал. В моем XML-файле есть несколько задач, я пытаясь связать 1-й.

 <Window.Resources>
        <XmlDataProvider x:Key="TaskList" Source="http://store.tymesheet.com/templates/Graphic-Designer.xml" XPath="tasks"/>
        <ControlTemplate x:Key="tasktemplate1">
            <Canvas Height="40" Width="850">
                <Label Content="{Binding XPath=task[1]}"  Height="30" Width="170" Canvas.Top="5" Canvas.Left="150" Background="LightGray">

                </Label>
                <TextBox Height="30" Width="120" Canvas.Top="5" Canvas.Left="370" Background="AliceBlue"></TextBox>
                <Label Canvas.Left="500" Canvas.Top="5">$</Label>
                <Button Canvas.Top="8" Height="10" Width="30" Canvas.Left="600" ></Button>
            </Canvas>
        </ControlTemplate>
        </Window.Resources>

и код для списка, где используется шаблон, здесь

 <TabItem>
        <Canvas Height="700" Width="850">
            <ListBox ItemsSource="{Binding Path=TaskList}" x:Name="listBox" Height="700" Width="850">
                    <ListBoxItem  Template="{StaticResource tasktemplate1}"/>
            </ListBox>
        </Canvas>
    </TabItem>

Я не понимаю, где моя привязка идет не так, любая помощь, спасибо.

1 ответ

Решение

Вы не можете установить ItemsSource и вручную добавить ListBoxItem в то же время на ListBox. Либо укажите ItemsSource, либо добавьте элементы в зависимости от вашего состояния.

В вашем случае, если вы хотите показать только первый элемент, удалите ItemsSource и установить DataContext из ListBoxItem,

<ListBox x:Name="listBox" Height="700" Width="850">
    <ListBoxItem DataContext="{Binding Source={StaticResource TaskList}}"
                 Template="{StaticResource tasktemplate1}"/>
</ListBox>
Другие вопросы по тегам