Вы можете обернуть эти два списка в ListBox
как элементы, так что, когда выбрана одна аллергия, также выбирается соответствующий основной список, таким образом вы можете привязать путь выбора, то есть SelectedMainList -> SelectedAllergy
. Не уверен, как это преобразуется в код вашего конкретного приложения, но вот рабочий пример сценария, обратите внимание на стиль, необходимый для автоматического выбора родительского списка. Пример состоит из двух списков и TextBlock, который отображает выбранный элемент.
<TextBlock Text="{Binding ElementName=TestLB,
Path=SelectedItem.Content.SelectedItem.Content}"/>
<ListBox Name="TestLB">
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Resources>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem>
<ListBox>
<ListBoxItem>List1-Item1</ListBoxItem>
<ListBoxItem>List1-Item2</ListBoxItem>
<ListBoxItem>List1-Item3</ListBoxItem>
</ListBox>
</ListBoxItem>
<ListBoxItem>
<ListBox>
<ListBoxItem>List2-Item1</ListBoxItem>
<ListBoxItem>List2-Item2</ListBoxItem>
<ListBoxItem>List2-Item3</ListBoxItem>
</ListBox>
</ListBoxItem>
</ListBox>
Возможно, вы захотите замаскировать выбор из двух основных списков, этот ответ должен помочь с этим.
Редактировать: Поскольку триггер в вышеприведенном стиле также отменяет выбор основного списка, когда фокус клавиатуры перемещается изнутри списка, вы можете изменить его, чтобы он действовал только при срабатывании триггера, это можно сделать с помощью покадровой анимации в EnterActions
триггера.
<Style TargetType="ListBoxItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected">
<DiscreteBooleanKeyFrame KeyTime="0:0:0.0" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>