Как установить фокус на TextBox с привязкой к данным в WPF при изменении выделения? - PullRequest
2 голосов
/ 25 марта 2011

У меня есть TextBox, связанный с TreeView.Если выбранный элемент изменяет, TextBox показывает мне его имя.То, что я хочу, установите фокус на TextBox, если выделение изменилось, и выделите текст в TextBox.

Это возможно только с WPF и когда, как?
(это не проблема ссобытие в древовидной структуре "OnSelectionChange", но это не вопрос ;-))

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

1 Ответ

2 голосов
/ 25 марта 2011

Это невозможно сделать в XAML, используя только встроенные средства.В конце концов, вам нужно будет написать код, и на самом деле не имеет значения, как называется исходный файл.Но я обрисую в общих чертах решение, которое не требует кода в вашем файле с выделенным кодом.

Получите ваш собственный класс MyAction из TriggerAction .Добавьте MyAction в качестве триггера события для Treeview.SelectedItemChanged к стилю вашего дерева.Привязав к подходящим свойствам зависимости, которые вы определите для MyAction, дайте ему указание установить фокус и выбрать текст вашего текстового поля, например,

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

По крайней мере, код будет использоваться повторно.

...