Я пытаюсь поместить TreeView внутри ComboBox в WPF, так что, когда поле со списком удалено, вместо плоского списка пользователь получает иерархический список, а любой node, который они выбирают, становится выбранным значением ComboBox.
Я довольно много искал, как это сделать, но лучшее, что я мог найти, это только пэки потенциальных решений, потому что я смехотворно новичок в WPF, я не мог работать.
У меня достаточно знаний WPF и привязки данных, что я могу получить свои данные в древовидной структуре, и я даже могу получить древовидную структуру внутри поля со списком, однако то, что я смог выполнить, не ведет себя должным образом. Я добавил скриншот, чтобы показать, что я имею в виду. На скриншоте поле со списком "открыто", поэтому древовидное представление внизу - это то, где я могу выбрать node, а древовидное представление "сверху" нарисовано поверх комбобокса, где я хочу, чтобы текст/значение выбранный node в отображаемом дереве.
В основном то, что я не знаю, как это сделать, - как мне получить выбранное древовидное дерево node, чтобы вернуть его значение обратно в combobox, который затем использует его как выбранное значение?
Вот код xaml, который я использую в настоящее время:
<ComboBox Grid.Row="0" Grid.Column="1" VerticalAlignment="Top">
<ComboBoxItem>
<TreeView ItemsSource="{Binding Children}" x:Name="TheTree">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type Core:LookupGroupItem}" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Path=Display}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
</ComboBoxItem>
</ComboBox>
Снимок экрана: