2

我有一个数据绑定到 TreeView 的 TextBox。如果所选元素更改 TextBox 会显示它的名称。我想要的是,如果选择已更改,则将焦点设置到 TextBox 并选择 TextBox 中的文本。

这是否仅适用于 WPF 以及何时、如何实现?
(树视图“OnSelectionChange”上的事件没有问题,但这不是问题;-))

<TextBox Name="textBoxTitel" DataContext="{Binding ElementName=treeView, Path=SelectedItem}" />
4

1 回答 1

2

它不能在 XAML 中仅使用内置工具来完成。最后,您将需要编写代码,而源文件的命名方式实际上并没有什么区别。但我将勾勒出一个不需要代码隐藏文件中的代码的解决方案。

MyActionTriggerAction派生您自己的类。为树视图的样式添加一个MyAction作为事件触发器。Treeview.SelectedItemChanged通过绑定到您将定义的合适的依赖属性MyAction,指示它设置焦点并选择文本框的文本,例如

<ns:MyAction FocusControl="{Binding ElementName=textBox}" SelectAll="True" />

至少代码将是可重用的。

于 2011-03-25T02:04:20.630 回答