读书人

treeView控件怎么在SelectedItemChang

发布时间: 2012-05-30 20:20:04 作者: rapoo

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的后台最好不要写代码。

读书人网 >CAD教程

热点推荐