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

Xamarin Forms+ReactiveUI中ViewModel数据未绑定到视图问题

根因分析

绑定失效、ViewModel未激活的核心问题出在你的ViewModel定义上:

  • DashboardViewModel被标记为abstract抽象类,抽象类无法被实例化。Prism依赖注入容器、ReactiveUI的视图-ViewModel关联逻辑都无法创建该类的实例,WhenActivated里的绑定逻辑自然不会执行,也不会有任何数据推送到UI。
  • 绑定属性未实现属性变更通知,即使ViewModel能正常实例化,后续属性值变更时UI也无法收到更新触发。
修复方案
  1. 移除DashboardViewModel类声明上的abstract修饰符,保证类可以被正常实例化。
  2. 改写绑定属性的实现,使用ReactiveUI标准的属性通知写法,确保变更能同步到UI。
  3. 确认Prism依赖注入容器中已正确注册该ViewModel,导航时使用Prism的导航接口跳转页面,不要手动实例化View或ViewModel。
修正后的ViewModel代码
using Prism.Navigation;
using RoutinesTracker.Core.Layout.ViewModels;

namespace RoutinesTracker.Pages.Dashboard
{
    public class DashboardViewModel : ViewModelBase
    {
        private string[] _exampleCollectionList;
        public string[] ExampleCollectionList
        {
            get => _exampleCollectionList;
            set => this.RaiseAndSetIfChanged(ref _exampleCollectionList, value);
        }

        public DashboardViewModel(INavigationService navigationService) : base(navigationService)
        {
            ExampleCollectionList = new[]
            {
                "Item 1",
                "Item 2",
                "Item 3",
                "Item 4",
                "Item 5"
            };
        }
    }
}

你贴出的XAML布局、View后台的绑定写法本身没有问题,完成上述修改后重新运行即可正常展示列表数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:03:19