私は次の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>
2つのコンボボックスが必要です。1つは各パレットの原色を表示し、もう1つは最初のコンボで選択したパレットの「その他」の色を表示します。
可能であれば、このデータバインディングをコードビハインドではなく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>
ただし、これにより、2番目のコンボボックスに「その他」の色の空白のエントリが表示されます。
何かが足りないのか、それとも正しくコーディングされていないのかわかりません。これはどのように修正できますか?