私は困惑しています。私は次のXMLを持っていますが、実際には別のStackOverflowの質問から取ったものだと思います。
<?xml version="1.0" encoding="utf-8" ?>
<HousingShapes>
<Shape Name="Rectangular" id="1/3"/>
<Shape Name="Circular" id="1/34" />
<Shape Name="Triangular" id="1/23" />
<Shape Name="Other Shape" id="1/15" />
</HousingShapes>
XAMLでこのようにデータをバインドしました
<Window.Resources>
<XmlDataProvider x:Key="xmlData" Source="d:\people.xml" XPath="HousingShapes"/>
</Window.Resources>
そして、以下の私のコンボボックス
<ComboBox Height="23" HorizontalAlignment="Left" Margin="97,52,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" ItemsSource="{Binding Source={StaticResource xmlData}, XPath=./Shape}" DisplayMemberPath="@Name" SelectedValuePath="{Binding Source={StaticResource xmlData}, XPath=./Shape}" SelectedValue="@id" />
コンボボックスに「形状名」、つまり長方形が表示されるようにします。このビットは機能します。ただし、データを追加するときにIDを使用する必要があります。テストとして、私は次のように書いた
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(comboBox1.SelectedValuePath);
}
長方形が選択された場合は1/3、「その他の形状」が選択された場合は1/15になると予想されますが、何も表示されません。