首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

treeView控件怎么在SelectedItemChanged 事件中改变点击节点的内容

2012-05-30 
treeView控件如何在SelectedItemChanged 事件中改变点击节点的内容treeView控件XAML代码:common:Hierarch

treeView控件如何在SelectedItemChanged 事件中改变点击节点的内容
treeView 控件XAML代码:
 <common:HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource="{Binding Subcomponents}" ItemContainerStyle="{StaticResource PurpleItemStyle}">
  <StackPanel Orientation="Horizontal" ToolTipService.ToolTip="{Binding Description}">
  <TextBlock Text="{Binding FeatureName}" Foreground="Blue" />
  <Image x:Name="btnDelete" Source="{Binding Icon}"></Image>
  </StackPanel>
 </common:HierarchicalDataTemplate>


 <controls:TreeView x:Name="tvFeature"
  FontSize="12" Margin="0,35,58,-444" ItemTemplate="{StaticResource NodeTemplate}" Grid.ColumnSpan="2" SelectedItemChanged="tvFeature_SelectedItemChanged">
  <!-- 用来一次展开TreeView所有结点 -->
  <controls:TreeView.ItemContainerStyle>
  <Style TargetType="controls:TreeViewItem">
  <Setter Property="IsExpanded" Value="False" />
  </Style>
  </controls:TreeView.ItemContainerStyle>
   
  </controls:TreeView>

以上是XAML代码,我想在SelectedItemChanged 事件中改变一下 btnDelete 的图片地址 我该在SelectedItemChanged如何写呢.. 

  谢谢

[解决办法]
大概看了一眼,代码不全,不好说...这个问题要分两种情况讨论:
1. 第一层子结点.如果我没有估计错,你的TreeView下面还有一个TreeViewItem.如果是,那么你就应该为该Item指定一个名称,并更改相应的图标就可以了
2. 其它各层子结点.如果是这样,你需要更改数据中的Icon属性.毕竟每个HierachicalTemplate中的Binding,默认情况下,都绑定到每个条目所对应的数据.
[解决办法]
SelectedItemChanged事件转换使用command,这个搜索一下就可以了
然后在viewmodel中修改<Image x:Name="btnDelete" Source="{Binding Icon}"></Image>
 这个控件使用的Icon属性即可。


操作尽量都放得vm中,view的后台最好不要写代码。

热点排行