大家好!
我在将静态XML资源绑定到C WPF应用程序中的组合框时遇到问题。它基本上可以工作,但总是用xml文件中的第一个条目填充(正确数量的)条目。
请看一下我的代码:
XML文件(XML文件)
资源/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资源中提供了所有不同的条目?
目的是将来用户可以编辑的数据资源。他们能够创建、编辑和删除服务提供商。但首先,所有的提供者都必须是可见的。