2つのコンボボックスがあり、最初のコンボボックスの値に応じて2番目のコンボボックスを更新したいと思います。コンボボックスをデータセットではなくxmlファイルにバインドする必要があります。検索ネットを持っていますが、役に立ちませんでした。
よろしくお願いします。
2つのコンボボックスがあり、最初のコンボボックスの値に応じて2番目のコンボボックスを更新したいと思います。コンボボックスをデータセットではなくxmlファイルにバインドする必要があります。検索ネットを持っていますが、役に立ちませんでした。
よろしくお願いします。
そのようなことを試してください:
XAML ファイル:
<Window x:Class="ComboBoxBindingXML.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<XmlDataProvider x:Key="myData">
<x:XData xmlns="">
<Books>
<Book Title="Book1">
<Authors>
<Author Name="Make" Surname="Vey" />
<Author Name="Jane" Surname="McRoy" />
</Authors>
</Book>
<Book Title="Book2" />
<Book Title="Book3" />
<Book Title="Book4">
<Authors>
<Author Name="John" Surname="Rat" />
<Author Name="Dorian" Surname="Trust" />
</Authors>
</Book>
<Book Title="Book5" />
</Books>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="10" />
<RowDefinition Height="30" />
<RowDefinition Height="10" />
<RowDefinition Height="30" />
<RowDefinition Height="10" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<ComboBox Name="cbFirst" DataContext="{StaticResource myData}" ItemsSource="{Binding XPath=Books/Book }">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=@Title}" FontWeight="Bold" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ComboBox Name="cbSecond" Grid.Row="2" DataContext="{Binding ElementName=cbFirst, Path=SelectedItem}" ItemsSource="{Binding XPath=Authors/Author}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding XPath=@Surname}" FontWeight="Bold" />
<TextBlock Text=" " />
<TextBlock Text="{Binding XPath=@Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Grid.Row="4" Text="{Binding ElementName=cbFirst, Path=Items.Count, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Grid.Row="6" Text="{Binding ElementName=cbSecond, Path=Items.Count, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</Window>
コード ビハインド ファイルが空です。すべてが XAML ファイルで行われます。
クラスXmlDataProviderには、XML データ ファイルの Uri を設定できるプロパティ「Source」があります。