Как связать содержимое 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>