You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms中Page与View的区别及MVVM关联逻辑的确认问询

Xamarin.Forms中Page与View的区别及MVVM关联说明

核心区别

  • Page是顶层页面容器:它是Xamarin.Forms中最顶层的可视化单元,代表一个完整的屏幕(比如ContentPage、NavigationPage),拥有独立的页面生命周期(如OnAppearing、OnDisappearing回调),是导航系统的基本单位。
  • View是UI控件/组件:是构成页面内容的基础元素,比如Button、Label这类原生控件,或是你封装的自定义复用组件(比如带筛选栏的列表组件),它没有独立生命周期,必须依附于Page或其他容器类View才能显示。

关于MVVM中ViewModel的关联

你的理解存在错误:Page同样可以(且通常会)关联ViewModel,在MVVM模式里,Page作为页面级的View载体,是绑定页面级ViewModel的核心对象。比如:

  • 在代码中设置:BindingContext = new HomePageViewModel();
  • 或在XAML中直接声明:
<ContentPage.BindingContext>
    <local:HomePageViewModel/>
</ContentPage.BindingContext>

自定义View关联ViewModel的场景,一般是这个View是具备独立业务逻辑的复用组件(比如购物车条目组件绑定CartItemViewModel),但这不是硬性要求——很多简单View可以直接绑定所属Page的ViewModel中的属性。

总结

  • Page是独立的屏幕级容器,有专属生命周期;View是页面内的UI元素,无独立生命周期,依赖Page存在。
  • Page和View都可关联ViewModel,Page通常绑定全局页面级ViewModel,自定义View可绑定自身子ViewModel或复用Page的ViewModel。

内容的提问来源于stack exchange,提问作者w4rcT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:55:13