Set focus on a textbox control in UserControl in wpf

前端 未结 7 848
孤独总比滥情好
孤独总比滥情好 2020-12-05 07:46

I have created an UserControl which is loaded in a View (Window) in WPF. In my user control I have put a TextBox. I am unable to set focus on this

相关标签:
7条回答
  • 2020-12-05 08:46

    Another option that you have is to create a bool IsFocusedproperty in your view model. Then you can add a DataTrigger to set the focus when this property is true:

    In a Resources section:

    <Style x:Key="SelectedTextBoxStyle" TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsFocused}" Value="True">
                <Setter Property="FocusManager.FocusedElement" 
                    Value="{Binding RelativeSource={RelativeSource Self}}" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
    

    ...

    <TextBox Style="{StaticResource SelectedTextBoxStyle}" ... />
    

    Note that at times, you may need to set it to false first to get it to focus (only when it is already true):

    IsFocused = false;
    IsFocused = true;
    
    0 讨论(0)
提交回复
热议问题