我有一组XML如下:
...<spotTerms>
<terms xmlns= "">
<term tag="1m" display="1M"/>
<term tag="3m" display="3M"/>
<term tag="6m" display="6M"/>...
我已使用以下内容成功将列表框绑定到此XML:
XmlDataProvider x:Key="Symbols" XPath="/symbols" Source="Config\Symbols.xml"/>
...
<ListBox x:Name="SpotMonths"
Style="{StaticResource SymbolChooserListBox}"
ItemsSource="{Binding Source={StaticResource Symbols}, XPath=spotTerms/terms/term/@display}"
SelectionMode="Multiple"
HorizontalContentAlignment="Stretch" Background="#00000000"/>
我的计划是根据选择的项目来构建字符串。为此,我希望能够使用一个XML属性进行显示,将另一个XML属性用于实际的字符串连接。
e.g。我希望能够显示“1M”,但在后端使用“1m”。
任何人都可以帮忙解决这个问题吗?
编辑: Robertos的回答帮助了我。如果其他人遇到同样的问题,这是我用过的最后一块XAML:
<ListBox x:Name="SpotMonths"
Style="{StaticResource SymbolChooserListBox}"
ItemsSource="{Binding Source={StaticResource Terms}}"
SelectedValuePath="@tag"
DisplayMemberPath="@display"
SelectionMode="Multiple"
HorizontalContentAlignment="Stretch" Background="#00000000" />
答案 0 :(得分:2)
您正在寻找的属性是ItemsControl.DisplayMemberPath。
您的代码可能如下所示:
<XmlDataProvider x:Key="Terms" XPath="/symbols/spotTerms/terms/term" Source="Config\Symbols.xml"/>
<ListBox x:Name="SpotMonths"
Style="{StaticResource SymbolChooserListBox}"
ItemsSource="{Binding Source={StaticResource Terms}, XPath=@tag}"
SelectionMode="Multiple"
HorizontalContentAlignment="Stretch" Background="#00000000"
DisplayMemberPath="@display" />