问题描述:左侧treeview控件中点击不同类别的节点时,右侧的页面会显示不同的权限。比如对于My Publications,拥有Modify和Delete两种权限,对于My Subscriptions,只拥有Unsubscribe的权限。
我想到的办法是将权限绑定到TreeView控件的SelectedItemChanged方法,也就是说点击My Publications下面的子节点时,Modify和Delete两个Button控件是可见的,点击My Subscriptions下面的子节点时,Unsubscribe这个Button控件是可见的。
对于SelectedItemChanged使用MVVM绑定,使用到了System.Windows.Interactivity程序集。
<TreeView Name="treeview" Grid.Column="0" ItemsSource="{Binding Path=Resources}"> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectedItemChanged"> <i:InvokeCommandAction Command="{Binding Path=SelectedItemChangedCommand}" CommandParameter="{Binding ElementName=treeview, Path=SelectedItem}"/> </i:EventTrigger> </i:Interaction.Triggers> <TreeView.ItemTemplate> <HierarchicalDataTemplate DataType="{x:Type local:TreeNode}" ItemsSource="{Binding Path=ChildNodes}"> <Label Content="{Binding Path=NodeName}"/> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView>