以下のコードでは、ListBox は XML ファイルからの色の名前で埋められますが、奇妙なことにそれらの名前は TextBox には表示されません。
ただし、テキストボックスを静的な「lbColor2」にバインドすると、それらの名前が表示されます。
では、名前が XML ソースから取得された場合、名前の違いによって名前が渡されない可能性があるのでしょうか?
<StackPanel>
<StackPanel.Resources>
<XmlDataProvider x:Key="ExternalColors" Source="App_Data/main.xml" XPath="/colors"/>
</StackPanel.Resources>
<TextBlock Text="Colors:"/>
<ListBox Name="lbColor" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Source={StaticResource ExternalColors}, XPath=color/@name}"/>
<ListBox Name="lbColor2">
<ListBoxItem>Red</ListBoxItem>
<ListBoxItem>Orange</ListBoxItem>
<ListBoxItem>Cyan</ListBoxItem>
</ListBox>
<TextBlock Text="You selected color:"/>
<TextBox
Text="{Binding ElementName=lbColor, Path=SelectedItem.Content}"
>
</TextBox>
</StackPanel>
XML ファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8" ?>
<colors>
<color name="Pink"/>
<color name="Cyan"/>
<color name="LightBlue"/>
<color name="LightGreen"/>
<color name="Another One"/>
</colors>