我正在使用这段代码在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控制焦点?
答案 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}"/>