我正在尝试在WPF中将一个TreeView放入ComboBox中,这样当下拉列表框展开时,用户会得到一个分层列表,并且他们选择的任何节点都将成为ComboBox的选定值。
我已经搜索了很多如何完成这个任务的方法,但我能找到的最好的方法只是一些可能解决方案的碎片,因为我对WPF还非常陌生,所以无法让它们起作用。
我有足够的WPF和数据绑定知识,可以将我的数据加载到树形视图中,甚至可以将树形视图放置在组合框中,但是我所能完成的并不能正常工作。我已经附上了一个截图来说明我的意思。在截图中,“open”状态的组合框底部的树形视图是我可以选择节点的地方,“on top”状态的树形视图则被绘制在组合框的顶部,而我希望显示所选节点的文本/值的地方应该是组合框内。
基本上,我不知道该怎么做才能使树形视图当前选择的节点将其值返回到组合框,并将其用作选定值。
以下是我目前使用的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>
屏幕截图: