Как установить фокус на TextBox после того, как его текст был установлен через привязку? - PullRequest
0 голосов
/ 05 января 2012

Я пытаюсь реализовать функциональность SelectAll (текст) для всех TextBox в моем приложении WPF. Я нашел, как это сделать здесь . Однако первый текстовый блок в моей форме не фокусируется автоматически. Я пытаюсь исправить это в обработчике событий Window_Loaded, просто используя firstTextBox.Focus. Это работает, но свойство Text этого TextBox устанавливается посредством привязки, и кажется, что это происходит после события Window_Loaded. Итак, я получаю первое текстовое поле, которое изначально сфокусировано, но не выбрано его Текст. Кажется, мне нужно подключиться к другому событию. Какой?

Ответы [ 2 ]

1 голос
/ 06 января 2012

Почему бы вам не попробовать DataContextChangedEvent. Сосредоточение внимания - это всегда боль в WPF ... для этого мы должны передать код за файлом ...

1 голос
/ 05 января 2012

Попробуйте использовать FocusManager в XAML вашего окна:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow"
    FocusManager.FocusedElement="{Binding ElementName=firstTextBox}">
    <Grid>
        <TextBox Name="firstTextBox" />
    </Grid>
 </Window>
...