如何在通过绑定设置Text后将焦点设置为TextBox?

时间:2012-01-05 17:30:20

标签: wpf focus selectall

我正在尝试为我的WPF应用程序中的所有TextBox实现SelectAll(文本)功能。我找到了如何做到这一点here。但是,我的表单上的第一个TextBox不会自动聚焦。我尝试通过简单地使用firstTextBox.Focus来修复Window_Loaded事件处理程序中的问题。这是有效的,但是这个TextBox的Text属性是通过绑定设置的,似乎在 Window_Loaded事件之后发生了。所以,我最终得到了一个最初聚焦的第一个文本框,但没有选择它的文本。我似乎需要连接到另一个事件。哪一个?

2 个答案:

答案 0 :(得分:1)

尝试在窗口的XAML中使用FocusManager:

<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>

答案 1 :(得分:1)

为什么不尝试DataContextChangedEvent。引入焦点始终是WPF的痛苦......我们必须在文件背后继续传递它......