我在一个.NET MAUI MVVM项目中有一个带有一个入口控件和两个按钮的视图。当视图加载时,入口控件没有焦点。我如何在不向后面的代码添加函数的情况下将焦点设置到入口控件?例如,ContentPage后面的代码只是将ViewModel链接到BindingContext。据我所知,表单控件不应该直接从ViewModel访问,那么在表单加载时,是否可以通过其他方法将焦点设置到入口控件上?
wpx232ag1#
正如您在问题中提到的,如果没有.cs中的任何代码,我们无法在ViewModel中设置Entry焦点。最简单的方法是在OnAppearing方法中设置焦点(允许用户在Page变为可见之前立即自定义行为):
protected override void OnAppearing() { base.OnAppearing(); Task.Run(() => { while (!myentry.IsVisible) { Task.Delay(10).Wait(); } Application.Current.Dispatcher.Dispatch(() => { myentry.Focus(); }); }); }
希望对你有用。
1条答案
按热度按时间wpx232ag1#
正如您在问题中提到的,如果没有.cs中的任何代码,我们无法在ViewModel中设置Entry焦点。
最简单的方法是在OnAppearing方法中设置焦点(允许用户在Page变为可见之前立即自定义行为):
希望对你有用。