dth*_*rpe 6 wpf treeview keyboard-shortcuts commandbinding
WPF Treeview响应+并-按键以展开和折叠树中的节点.大!
是否有现有命令我可以绑定我的工具栏按钮或菜单项以在树视图中执行相同的操作?我没有看到与stock命令常量中的扩展/折叠有关的任何内容.
该TreeView处理的膨胀TreeViewItem通过结合使用鼠标ToggleButton.IsChecked来TreeViewItem.IsExpanded在ControlTemplate和处理与键盘中的覆盖扩展TreeViewItem.OnKeyDown.所以,不,它在其实现中不使用命令.
但是您可以毫不费力地添加自己的命令.在这个例子中,我添加了一个行为,TreeView以便它响应标准Open和Close应用程序命令:
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="Open" CommandTarget="{Binding ElementName=treeView1}" Command="Open"/>
<MenuItem Header="Close" CommandTarget="{Binding ElementName=treeView1}" Command="Close"/>
</Menu>
<TreeView>
<i:Interaction.Behaviors>
<local:TreeViewCommandsBehavior/>
</i:Interaction.Behaviors>
<TreeViewItem Header="Root">
<TreeViewItem Header="Item1">
<TreeViewItem Header="Subitem1"/>
<TreeViewItem Header="Subitem2"/>
</TreeViewItem>
<TreeViewItem Header="Item2">
<TreeViewItem Header="Subitem3"/>
<TreeViewItem Header="Subitem4"/>
</TreeViewItem>
</TreeViewItem>
</TreeView>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
这是使这项工作的行为:
public class TreeViewCommandsBehavior : Behavior<TreeView>
{
private TreeViewItem selectedTreeViewItem;
protected override void OnAttached()
{
AssociatedObject.AddHandler(TreeViewItem.SelectedEvent, new RoutedEventHandler(TreeViewItem_Selected));
AssociatedObject.CommandBindings.Add(new CommandBinding(ApplicationCommands.Open, CommandExecuted));
AssociatedObject.CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, CommandExecuted));
}
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
selectedTreeViewItem = e.OriginalSource as TreeViewItem;
}
private void CommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
bool expand = e.Command == ApplicationCommands.Open;
if (selectedTreeViewItem != null)
selectedTreeViewItem.IsExpanded = expand;
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉行为,请首先添加此命名空间:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
Run Code Online (Sandbox Code Playgroud)
并为项目添加相应的引用.
| 归档时间: |
|
| 查看次数: |
2598 次 |
| 最近记录: |