专注于文本框无法正常工作

时间:2015-05-29 14:11:36

标签: c# wpf mvvm

我有一个主窗口,其中包含一个托管其他页面的内容控件。其中一个页面有一个文本框和一个gridview。当该页面加载时,我想将焦点设置在文本框上。如果我在代码隐藏中执行此操作,则该框不会获得焦点。如果我使用

在XAML中为页面执行此操作
FocusManager.FocusedElement="{Binding ElementName=DrugScanTextBox}"

然后我可以在文本框中看到光标但它没有闪烁,并且按钮没有显示在框中。

我唯一的猜测是,在加载并绘制数据后,gridview将重点关注。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我添加了一个布尔属性'FocusNow',并在我的后台工作程序加载事件结束时将其设置为true,然后在用户控件周围添加此边框样式。这样,在完成所有内容加载后,它会将焦点设置为网格(在您的案例文本框中)。

<Border Margin="10" >
    <Border.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding FocusNow}" Value="True">
                    <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=xamDataGrid1}" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>

。 。