我正在使用TemplateStudio构建我的项目
在视图> TestPage.xaml中
<Page
x:Class="FluentQQ.Views.TestPage"
...>
<Grid>
<TextBox x:Name="MessageInput" />
</Grid>
</Page>
在Views > TestPage.xaml.cs中
using FluentQQ.ViewModels;
using Microsoft.UI.Xaml.Controls;
namespace FluentQQ.Views;
public sealed partial class TestPage : Page
{
public TestViewModel ViewModel
{
get;
}
public TestPage()
{
ViewModel = App.GetService<TestViewModel>();
InitializeComponent();
}
}
然后,我尝试获取TextBox“MessageInput”的内容
因此,在ViewModels > TestViewModel.cs中,我使用
MessageInput.Text
但它不工作
CS0103 The name 'MessageInput' does not exist in the current context
- 我知道这个问题很简单,但请原谅我只是个初学者 *
1条答案
按热度按时间bakd9h0s1#
如错误信息所示,
MessageInput
控件在**TestPageViewModel* 中不存在。对于MVVM,通常应该使用绑定从视图中获取数据。为了确保我们在同一页上,在这种情况下:
1.安装CommunityToolkit.Mvvm nuget包。如果您使用MVVM模式,这将使您的工作更轻松。
1.在您的ViewModel中,TestPageViewModel:
1.在代码隐藏中,TestPage.xaml.cs:
1.然后在您的视图中,TestPage.xaml:
这就是全部。SomeText将在您每次更改
TextBox
中的文本时更新。顺便说一下,您可以直接从代码隐藏访问
TextBox
。只要确保使用x:Name
来命名它。TestPage.xaml.cs