c# - MVVM 中的 Xamarin.Forms bindingContext
问题描述
进一步到 关于 BindingContext的这个问题
我正在查看一个实现 MVVM 的 Xamarin.Forms 项目,例如,当我查看 XAML 页面SomePage.xaml
并且我想找到具有该页面逻辑的 ViewModel 时,它通常是成功的和失败的。
在更简单的 Xamarin.Forms 应用程序中,我只想查看SomePage.xaml.cs
bindingContext。
但在更大的应用程序中,这似乎是“在某处抽象”
例如在SomePage.xaml
我看到:
x:Class="MyApp.SomePage"
但这通常不是包含代码的类,它似乎是 XAML 文件的代码表示
当我搜索 时,我有更多的运气SomePageViewModel.cs
,但并非一直如此。
在代码中搜索该术语bindingContext
没有产生任何结果。
我的问题是我还能在哪里寻找
bindingContext
,以确定哪些类包含控制 XAML 页面的代码。
似乎这是以某种方式抽象的,因为我在代码中看到了BindableBase
。
解决方案
来自PRISM 文档
prism:ViewModelLocator.AutowireViewModel="True"
此视图 (MainPage.xaml) 通过允许数据绑定到视图模型的命名约定自动连接到视图模型 (MainPageViewModel.cs)。有关详细信息,请参阅 ViewModelLocator 文档。
和
在 Portable 项目中有一个 ViewModels 文件夹。该文件夹将包含所有与视图模型相关的代码。该模板在此文件夹中为 MainPage 创建了一个名为 MainPageViewModel.cs 的视图模型。让我们看一下这个类并分解这里发生的事情。
推荐阅读
- module - 通过文件夹和子文件夹运行的模块
- php - 使用 index.php/en 之类的语言从 codeigniter 中删除 index.php
- java - 如何从 application.yaml 文件中获取值?
- sql - Oracle 生成多条记录
- postgresql - 将 csv 文件批量加载到 postgres
- django - Django 在信号 post_save 中获取请求
- swift - 如何在 SwiftUI 中对手势实现更新(_:body :)
- asp.net - 使用带有自定义身份验证的 GetTokenAsync
- flask - 视图函数未返回有效响应。烧瓶棉花糖,RestAPI
- corda - “最终流程中的 Corda 重叠异常”