Этот вопрос связывает с моим предыдущим вопросом, но более конкретен. Скажите, что у меня есть два ComboBoxes, один заполненный с названиями продукта, другое пустое. Когда продукт выбран, я хочу, чтобы второй ComboBox был переполнен данными, связанными с тем продуктом. У меня есть XML как следующее:
...more Component nodes...
...more Product nodes...
То, что я надеялся, - то, что я мог так или иначе установить XPath
на Компоненте ComboBox, таким образом, что это добирается весь Components/Component
узлы от Product
узел, чей @name
атрибут равен в настоящее время выбираемому значению в продукте ComboBox. Действительно ли это возможно? Как я сделал бы это? Вот то, что я имею в своем XAML до сих пор:
ComboBox продукта переполнен названиями продукта как MyProduct1, так, чтобы часть была прекрасна. Это - зависимый Компонент ComboBox, с которым я нуждаюсь в помощи.
Погуглив в поисках примеров использования выражений XPath в WPF, я нашел эту статью, которая подсказала мне решение окольным путем. Его пример был сложнее моего, поэтому мне не пришлось создавать классы конвертера XML. Мне просто нужен был следующий XAML для моего зависимого компонентного ComboBox:
<ComboBox Height="23" HorizontalAlignment="Left" Margin="138,151,0,0"
Name="cbo_component" VerticalAlignment="Top" Width="201"
DataContext="{Binding ElementName=cbo_product, Path=SelectedItem}"
ItemsSource="{Binding XPath=Components/Component}"
DisplayMemberPath="@name"/>
Здесь cbo_product
- это Name
моего Product ComboBox.