установка фокуса в одном пользовательском элементе управления на основе действия в другом пользовательском элементе управления - PullRequest
0 голосов
/ 30 июня 2010

Один пользовательский элемент управления - это список, в котором у каждого элемента в списке есть кнопка.При нажатии кнопки редактируемые сведения об элементе отображаются в другом пользовательском элементе управления.Деталь знает, что отображать и как отображать это посредством привязки данных к модели представления.Оба пользовательских элемента управления находятся в одном и том же окне.

Проблема, которую я нахожу хитрой, состоит в том, чтобы установить фокус на первое не доступное только для чтения текстовое поле.

Я видел одно решение здесь , что включает в себя написание расширения разметки.Хотя сейчас оно немного старое, и мне интересно, есть ли более простой способ сделать это.

Приветствия,
Berryl

Я должен был указать, что команда EditCommand, котораятриггер для фокусировки на текстовом поле находится в модели представления, связанной с пользовательским элементом управления листинга.Я не против иметь код для проблем пользовательского интерфейса.

ОБНОВЛЕНИЕ Вот недавняя изящная запись Джоша Смита, которая касается части того, что намерение здесь;чтобы иметь возможность контролировать фокус через ViewModel.

Ответы [ 2 ]

1 голос
/ 30 июня 2010

Вы можете использовать VisualTreeHelper, чтобы найти определенный элемент управления textbox и попробовать textboxcontrol.Focus ()

0 голосов
/ 02 июля 2010

Хорошо, могут быть и другие способы сделать это, но поскольку решение Джоша Смита , о котором я упоминал в моем вопросе, использует саму структуру привязки данных, это не просто для использования с MVVM.Запрещено копаться с визуальным деревом и не пытаться вертеть ум вокруг вложенных элементов управления - просто, элегантно и, что самое главное, работает!

BH

...