WPF Combobox绑定vb.net中的国家/地区列表

时间:2012-10-20 06:49:43

标签: wpf xml vb.net data-binding combobox

我有一个WPF组合框

  <ComboBox x:Name="tCountry" HorizontalAlignment="Left" Margin="96,151,0,0" VerticalAlignment="Top" Width="146" TabIndex="6"/>

和我从unicode中提取的一些xml数据(CLDRs)

<?xml version="1.0" encoding="UTF-8" ?>
<country>
    <territory type="AC">Ascension Island</territory>
    <territory type="AD">Andorra</territory>
    <territory type="AE">United Arab Emirates</territory>
    <territory type="AF">Afghanistan</territory>
    <territory type="AG">Antigua and Barbuda</territory>
    <territory type="AI">Anguilla</territory>
    <territory type="AL">Albania</territory>
    ....
</country>

我怎么能拥有它以便Combobox填充这些国家,以便我可以在vb.net中提交数据时提取2个字母的iso代码

1 个答案:

答案 0 :(得分:0)

您可以使用XmlDataProvider从XML文件中检索字段:

<XmlDataProvider x:Key="xml" Source="data.xml" />

然后使用XPath属性{/ 1}}使用SelectedValuePath绑定它:

<ComboBox ItemsSource="{Binding Source={StaticResource xml},XPath=/country/territory}" 
     SelectedValuePath="{Binding XPath=@type}" />

现在使用SelectedValue来获取缩写(或使用绑定)。

private void combo_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    MessageBox.Show((string)(sender as ComboBox).SelectedValue);
}