这是我的代码
<ComboBox Name="cbProject" IsEditable="True" Width="100" >
<ComboBoxItem>
<TreeView Name="treeProject" >
<TreeViewItem Header="123" />
<TreeViewItem Header="124" />
<TreeViewItem Header="125" />
</TreeView>
</ComboBoxItem>
</ComboBox>
点击树节点的时候ComBox的值就变成这样了 。
请问这个在点击树节点后该给ComBox怎么赋值?
<ComboBox Name="cb1"> <TreeView SelectedValuePath="Header" Width="280" Name="tv1"> <TreeViewItem Header="Employee1"> <TreeViewItem Header="Jesper"/> <TreeViewItem Header="Aaberg"/> <TreeViewItem Header="12345"/> </TreeViewItem> <TreeViewItem Header="Employee2"> <TreeViewItem Header="Dominik"/> <TreeViewItem Header="Paiha"/> <TreeViewItem Header="98765"/> </TreeViewItem> <TreeView.Triggers> <EventTrigger RoutedEvent="TreeView.SelectedItemChanged"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard Duration="0:0:0" Storyboard.TargetName="cb1" Storyboard.TargetProperty="Tag" > <ObjectAnimationUsingKeyFrames> <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{Binding ElementName=tv1, Path=SelectedValue}"> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </TreeView.Triggers> </TreeView> </ComboBox> changed the Template of combobox(used the one in the sdk) and replaced the ContentPresenter section(Name='ContentSite') with the one below <ContentPresenter Name="ContentSite" IsHitTestVisible="False" Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag}" Margin="3,3,23,3" VerticalAlignment="Center" HorizontalAlignment="Left" />
哥们可以在具体些么,有源码的话感激不尽。我刚学WPF 正好工作中遇到,挺急的,跪求实现过程。
@BoyLife: 源码在上面了。
@荒野的呼唤: 谢谢大哥的帮助。我放在程序里运行点击树子节点 ComBox中的值就变成这样了,他把我的整个树都当做ComBox的值了,请问这个该怎么修改让ComBox的值为树的子节点?
@BoyLife:一个 ComboBoxitem的值为一个树。这一种方法不怎么好,另一种方法就是触发treeview的选中事件,把你点击的节点赋值给combobox框。
@荒野的呼唤: 嗯。。现在我要实现的就是点击树的末级节点,我的ComBox中就显示我我刚才点击的值,就像我点击Employee1节点下的Jesper子节点,那么我点击后ComBox的值就是Jesper
@BoyLife: 嗯。你就在treeview的
SelectedItemChanged事件中写啊,获取treeview选中的值,再赋值啊,就两步。
@BoyLife: 刚才大哥说的触发treeview的选中事件,把你点击的节点赋值给combobox框。这个该怎么写?是在是太笨了!不会用啊
@BoyLife: 你google一下,看怎么获取treeview选中的值,得到了选中的值,你在google一下,怎么给combobox赋值。
@荒野的呼唤: 不会弄啊 我在事件里赋值也没用
@BoyLife: 你的事件写在哪儿,触发了吗?????
@荒野的呼唤: <TreeView Width="280" Name="tv1" SelectedItemChanged="tv1_SelectedItemChanged" TreeViewItem.Selected="tv1_Selected">