给定XML文件来定义ComboBox ItemsSource,有人能解释和更正以下XAML吗?
XAML:
<ComboBox Name="cbConnection" DataContext="{Binding Source=c:\temp\ConnectionList.xml, XPath=DBConnection}" ItemsSource="{Binding XPath=ComboItem}" DisplayMemberPath="Key" SelectedValuePath="Value">c:\temp\ConnectionList.xml:
<?xml version="1.0" encoding="utf-8" ?>
<DBConnection>
<ComboItem>
<Key>Computer-A</Key>
<Value>Server=COMPA;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
<ComboItem>
<Key>Computer-B</Key>
<Value>Server=COMPB\SQL2012STD;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
</DBConnection>发布于 2013-01-22 17:47:08
您不一定需要在DataContext上胡闹。只需适当地设置ItemsSource即可。
下面是XMLDataProvider,将其放在页面中的资源字典中:
<XmlDataProvider x:Key="XmlData"
Source="c:\temp\ConnectionList.xml">
</XmlDataProvider>以下是更正后的ComboBox:
<ComboBox x:Name="cbConnection"
ItemsSource="{Binding Source={StaticResource XmlData}, XPath=//ComboItem}"
DisplayMemberPath="Key"
SelectedValuePath="Value" />以下是经过更正的XML:
<?xml version="1.0" encoding="utf-8" ?>
<DBConnection>
<ComboItem>
<Key>Computer-A</Key>
<Value>Server=COMPA;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
<ComboItem>
<Key>Computer-B</Key>
<Value>Server=COMPB\SQL2012STD;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
</DBConnection>https://stackoverflow.com/questions/14464247
复制相似问题