首页 > 解决方案 > MVVM 中的 Xamarin.Forms bindingContext

问题描述

进一步到 关于 BindingContext的这个问题

我正在查看一个实现 MVVM 的 Xamarin.Forms 项目,例如,当我查看 XAML 页面SomePage.xaml并且我想找到具有该页面逻辑的 ViewModel 时,它通常是成功的和失败的。

在更简单的 Xamarin.Forms 应用程序中,我只想查看SomePage.xaml.csbindingContext。

但在更大的应用程序中,这似乎是“在某处抽象”

例如在SomePage.xaml我看到:

x:Class="MyApp.SomePage"

但这通常不是包含代码的类,它似乎是 XAML 文件的代码表示

当我搜索 时,我有更多的运气SomePageViewModel.cs,但并非一直如此。

在代码中搜索该术语bindingContext没有产生任何结果。

我的问题是我还能在哪里寻找bindingContext,以确定哪些类包含控制 XAML 页面的代码。

似乎这是以某种方式抽象的,因为我在代码中看到了BindableBase

标签: c#xamlxamarinxamarin.forms

解决方案


来自PRISM 文档

prism:ViewModelLocator.AutowireViewModel="True"

此视图 (MainPage.xaml) 通过允许数据绑定到视图模型的命名约定自动连接到视图模型 (MainPageViewModel.cs)。有关详细信息,请参阅 ViewModelLocator 文档。

在 Portable 项目中有一个 ViewModels 文件夹。该文件夹将包含所有与视图模型相关的代码。该模板在此文件夹中为 MainPage 创建了一个名为 MainPageViewModel.cs 的视图模型。让我们看一下这个类并分解这里发生的事情。


推荐阅读