首页 新闻 会员 周边

WPF ComBox中放置TreeView选中值的问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-03-22 22:12

这是我的代码  

<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怎么赋值?

BoyLife的主页 BoyLife | 初学一级 | 园豆:18
提问于:2012-05-16 16:11
< >
分享
最佳答案
0
<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" />
收获园豆:10
悟行 | 专家六级 |园豆:12559 | 2012-05-16 16:12

哥们可以在具体些么,有源码的话感激不尽。我刚学WPF 正好工作中遇到,挺急的,跪求实现过程。

BoyLife | 园豆:18 (初学一级) | 2012-05-16 16:16

@BoyLife: 源码在上面了。

悟行 | 园豆:12559 (专家六级) | 2012-05-16 16:17

@荒野的呼唤: 谢谢大哥的帮助。我放在程序里运行点击树子节点 ComBox中的值就变成这样了,他把我的整个树都当做ComBox的值了,请问这个该怎么修改让ComBox的值为树的子节点?

BoyLife | 园豆:18 (初学一级) | 2012-05-16 16:26

@BoyLife:一个 ComboBoxitem的值为一个树。这一种方法不怎么好,另一种方法就是触发treeview的选中事件,把你点击的节点赋值给combobox框。

悟行 | 园豆:12559 (专家六级) | 2012-05-16 16:28

@荒野的呼唤: 嗯。。现在我要实现的就是点击树的末级节点,我的ComBox中就显示我我刚才点击的值,就像我点击Employee1节点下的Jesper子节点,那么我点击后ComBox的值就是Jesper

BoyLife | 园豆:18 (初学一级) | 2012-05-16 16:33

@BoyLife: 嗯。你就在treeview的

SelectedItemChanged事件中写啊,获取treeview选中的值,再赋值啊,就两步。
悟行 | 园豆:12559 (专家六级) | 2012-05-16 16:35

@BoyLife: 刚才大哥说的触发treeview的选中事件,把你点击的节点赋值给combobox框。这个该怎么写?是在是太笨了!不会用啊

BoyLife | 园豆:18 (初学一级) | 2012-05-16 16:36

@BoyLife: 你google一下,看怎么获取treeview选中的值,得到了选中的值,你在google一下,怎么给combobox赋值。

悟行 | 园豆:12559 (专家六级) | 2012-05-16 16:39

@荒野的呼唤: 不会弄啊 我在事件里赋值也没用

BoyLife | 园豆:18 (初学一级) | 2012-05-16 17:01

@BoyLife: 你的事件写在哪儿,触发了吗?????

悟行 | 园豆:12559 (专家六级) | 2012-05-16 17:02

@荒野的呼唤:       <TreeView   Width="280"   Name="tv1" SelectedItemChanged="tv1_SelectedItemChanged" TreeViewItem.Selected="tv1_Selected"> 

BoyLife | 园豆:18 (初学一级) | 2012-05-16 17:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册