我有以下 XML 文件:
<Palettes>
<Palette>
<Primary Name="Black"/>
<Other Name="Blue"/>
<Other Name="Red"/>
</Palette>
<Palette>
<Primary Name="Green"/>
<Other Name="Orange"/>
<Other Name="Yellow"/>
<Other Name="Violet"/>
</Palette>
</Palettes>
我想要两个组合框:一个显示每个调色板的原色,另一个显示在第一个组合中选择的调色板的“其他”颜色。
如果可能的话,我希望在 XAML 文件中而不是在代码隐藏中完成此数据绑定。
我有以下 XAML 文件:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="80" Width="350">
<Window.Resources>
<XmlDataProvider x:Key="Palettes" Source="pack://siteoforigin:,,,/Palettes.xml" />
</Window.Resources>
<Grid>
<ComboBox x:Name="cbxPrimary"
DisplayMemberPath="Primary/@Name"
ItemsSource="{Binding Mode=OneWay, Source={StaticResource Palettes}, XPath=/Palettes/Palette}"
Margin="10,10,175,10"
SelectedIndex="0"/>
<ComboBox x:Name="cbxOther"
DisplayMemberPath="Other/@Name"
ItemsSource="{Binding ElementName=cbxPrimary, Mode=OneWay, Path=SelectedItem}"
Margin="175,10,10,10"
SelectedIndex="0"
SelectedValue="{Binding XPath=./Other/@Name}"
SelectedValuePath="./Other/@Name"/>
</Grid>
</Window>
但是,这将在第二个组合框中显示“其他”颜色的空白条目:
我无法弄清楚我是否遗漏了什么,或者是否编码不正确。如何纠正?