maui双向绑定需三要素:可通知模型(如observableobject)、xaml中显式声明mode=twoway、正确设置bindingcontext;否则默认oneway,导致用户输入不更新模型。
MAUI 中实现双向绑定,核心是让 UI 控件和数据模型能互相自动更新:用户改输入框,模型值立刻变;代码改模型值,界面也立刻刷新。关键在三要素:绑定上下文(BindingContext)、绑定路径(Path),以及 BindingMode.TwoWay 显式声明。
1. 准备可通知的数据模型(INotifyPropertyChanged)
双向绑定要求模型能“告诉”界面自己变了。必须实现 INotifyPropertyChanged 接口,并在属性 setter 里触发 PropertyChanged 事件。
推荐用 C# 12 的 ObservableObject(MAUI 内置)简化写法:
public partial class LoginViewModel : ObservableObject<br>
{<br>
[ObservableProperty]<br>
private string _username;<br><br>
[ObservableProperty]<br>
private string _password;<br>
}
上面代码自动生成带通知逻辑的 Username 和 Password 属性,无需手写 INotifyPropertyChanged。
2. 在 XAML 中设置 TwoWay 绑定
绑定到控件时,显式指定 Mode=TwoWay。不是所有控件默认支持双向,不写会退化为单向(OneWay)。
例如绑定到 Entry 和 Switch: