使用AppBarButton的TextBox中出现焦点错误-UWP

时间:2018-08-16 16:37:39

标签: c# uwp focus textblock

我正在使用这段代码在UWP的MVVM项目中的XAML中创建一个按钮。

为此,请使用以下代码:

<CommandBar Background="Yellow" >
    <AppBarButton Label="Pruebas" Command="{Binding cmd_Process}" >
          <AppBarButton.Icon>
               <SymbolIcon Symbol="Setting"/>
          </AppBarButton.Icon>
     </AppBarButton>
</CommandBar>

在“单击”“命令”时,需要的方法在ViewModel中执行,但是我必须发送TextBlock的内容才能在ViewModel中使用它。

一切都很好,但是在发送它的时候向我发送了null,所以我不发送null,所以我必须将Focus的配置更改为TextBlock,但是我必须先这样做,然后执行Command

如果我使用普通按钮进行链接,则Command可以完美运行,但不能与AppBarButton一起使用。

在执行命令之前,如何使AppBarButton更改TextBlock的焦点?还是知道必须从ViewModel类调用页面,如何才能通过ViewModel控制焦点?

2 个答案:

答案 0 :(得分:0)

您可以在执行命令之前或在命令功能内通过ViewModel或页面类设置焦点。使用 Control.Focus()方法。在下面的链接更多信息: https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.focus https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.input.focusmanager https://docs.microsoft.com/en-us/windows/communitytoolkit/developer-tools/focustracker

答案 1 :(得分:0)

您可以使用te属性在文本框中失去焦点:

UpdateSourceTrigger=PropertyChanged

在TextBox中使用...示例:

<TextBox x:Name="txt_Name" Header="Name:" Margin="5" Text="{Binding PropertyBindingToViewModel, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>