Всем доброго времени суток!
У меня проблема с привязкой статического ресурса xml к комбинированному списку в приложении C # WPF.В основном это работает, но всегда заполняет (правильное количество) элементов первой записью в моем XML-файле.Пожалуйста, посмотрите на мой код:
XML-файл ( resources / config / xml / ServiceProviders.xml ):
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ServiceProviders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ServiceProvider name="Service Provider 1">
</ServiceProvider>
<ServiceProvider name="Service Provider 2">
</ServiceProvider>
<ServiceProvider name="Service Provider 3">
</ServiceProvider>
<ServiceProvider name="Service Provider 4">
</ServiceProvider>
<ServiceProvider name="Service Provider 5">
</ServiceProvider>
</ServiceProviders>
Код XAML, включая привязку (просто Grid
в главном окне):
<Grid Name="ServiceProviderGrid"
Grid.Row="0"
Grid.Column="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<Grid.DataContext>
<XmlDataProvider x:Name="ServiceProviderData"
Source="resources/config/xml/ServiceProviders.xml"
XPath="/ServiceProviders/ServiceProvider">
</XmlDataProvider>
</Grid.DataContext>
<Grid.Resources>
<DataTemplate x:Key="ServiceProviderDataTemplate">
<TextBlock Text="{Binding XPath=/ServiceProviders/ServiceProvider/@name}"></TextBlock>
</DataTemplate>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Label Name="ServiceProviderLabel"
Grid.Row="0"
Margin="10,10,10,5"
VerticalAlignment="Bottom">
Service Provider
</Label>
<ComboBox ItemsSource="{Binding}"
ItemTemplate="{StaticResource ServiceProviderDataTemplate}"
Name="ServiceProviderComboBox"
IsSynchronizedWithCurrentItem="True"
Visibility="Visible"
Grid.Row="1"
Margin="10,5,10,10"
VerticalAlignment="Stretch"
SelectedIndex="1"
Cursor="Hand">
</ComboBox>
</Grid>
Проблема, с которой я столкнулся, лучше всего проиллюстрирована на следующем рисунке:
Кто-нибудь знает, как заполнить ComboBox
всеми различными записями, предоставленными в статическом XML-ресурсе?Целью является ресурс данных, который может быть отредактирован пользователями в будущем.Они должны иметь возможность создавать, редактировать и удалять поставщиков услуг.Но сначала все провайдеры должны быть видны.