MAUI中实现MVVM模式需分离View、ViewModel、Model三层,依靠BindingContext绑定、INotifyPropertyChanged通知和ICommand命令驱动交互。View层在XAML中绑定ViewModel属性与命令;ViewModel层实现属性变更通知及命令逻辑;Model层按需定义纯数据类。

MAUI 中实现 MVVM 模式,核心是分离界面(View)、业务逻辑(ViewModel)和数据(Model),靠绑定(Binding)和命令(Command)驱动交互。不依赖第三方框架也能实现,但推荐用 .NET 内置的 INotifyPropertyChanged 和 ICommand,再配合 MAUI 的 BindingContext 就能跑起来。
在页面(如 MainPage.xaml)里,把 BindingContext 指向 ViewModel 实例。最常用方式是在构造函数中设置:
public MainPage()
{
InitializeComponent();
BindingContext = new MainViewModel(); // 关键:绑定 ViewModel
}然后在 XAML 里用 {Binding} 绑定属性或命令:
<Label Text="{Binding WelcomeText}" />
<Button Text="点我" Command="{Binding ClickCommand}" />ViewModel 是普通 C# 类,需通知界面属性变化,并提供可执行的命令。基础写法如下:
public class MainViewModel : INotifyPropertyChanged
{
private string _welcomeText = "欢迎使用 MAUI MVVM";
public string WelcomeText
{
get => _welcomeText;
set
{
_welcomeText = value;
OnPropertyChanged(); // 触发界面刷新
}
}
<pre class="brush:php;toolbar:false;">public ICommand ClickCommand { get; }
public MainViewModel()
{
ClickCommand = new Command(OnClicked);
}
private void OnClicked()
{
WelcomeText = "按钮被点击了!";
}
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}}
Model 不强制要求,但建议把纯数据类(比如用户、订单)单独抽出来,不带逻辑也不实现通知接口:
User.cs 只含 Id、Name 等自动属性User 实例,或通过属性暴露它(并确保该属性变更时触发通知)INotifyPropertyChanged
Task.Run 或用异步命令(IAsyncCommand,可用 CommunityToolkit.Mvvm 扩展)InitializeComponent() 之后,否则绑定无效OnPropertyChanged)MauiProgram.CreateBuilder().ConfigureLogging(b => b.AddConsole());
基本上就这些。MAUI MVVM 不复杂但容易忽略通知机制和绑定时机。写熟了以后,加新页面基本就是复制粘贴 View + 新建 ViewModel + 绑定属性三步走。
以上就是MAUI MVVM模式怎么实现 C# MAUI MVVM基础教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号