C# MVVM中的Xamarin.Forms bindingContext

C# MVVM中的Xamarin.Forms bindingContext,c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,进一步 关于绑定上下文 我在看一个实现MVVM的Xamarin.Forms项目,当我查看一个XAML页面时,例如SomePage.XAML,我想找到一个具有该页面逻辑的ViewModel,它通常是一帆风顺的 在更简单的Xamarin.Forms应用程序中,我只需查看SomePage.xaml.cs即可查看绑定上下文 但在更大的应用程序中,这似乎是“抽象的某处” 例如,在SomePage.xaml中,我看到: x:Class=“MyApp.SomePage” 但这通常不是包含代码的类,它似乎是XA

进一步 关于绑定上下文

我在看一个实现MVVM的Xamarin.Forms项目,当我查看一个XAML页面时,例如
SomePage.XAML
,我想找到一个具有该页面逻辑的ViewModel,它通常是一帆风顺的

在更简单的Xamarin.Forms应用程序中,我只需查看
SomePage.xaml.cs
即可查看绑定上下文

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

例如,在
SomePage.xaml中,我看到:

x:Class=“MyApp.SomePage”

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

当我搜索
SomePageViewModel.cs
时,我的运气更好,但不是一直如此

在代码中搜索术语
bindingContext
,没有结果

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

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

中看到了

此视图(MainPage.xaml)连接到视图模型 (MainPageViewModel.cs)通过命名约定自动允许 用于数据绑定到视图模型。请参见ViewModelLocator文档 了解更多信息

在Portable项目中有一个ViewModels文件夹。这个文件夹 将包含所有与视图模型相关的代码。创建的模板 主页的视图模型在此中称为MainPageViewModel.cs 文件夹让我们看一看这门课,并详细分析正在发生的事情 在这里


如果在.cs或.xaml中没有设置
BindingContext
,我会搜索页面的引用,因为它们可能在推送页面之前创建页面并在那里设置上下文。可以在xaml中设置,也可以使用类似于PRISM的库来处理它。在不知道您正在查看的具体示例的情况下,很难说。@Jason代码使用PRISIM,当使用PRISM时,您通常在哪里查找绑定?@Nick所以我认为可能有一个类声明页面及其绑定,但是当我按页面名称搜索时,我应该能够找到该文件,事实并非如此。如果视图有父类,则可能会将其设置在那里。检查如何在应用程序中实例化视图。有些抽象,如依赖项注入,可能会使查找依赖项变得更加困难。还有一个名为ViewModel first的模式,在创建ViewModel实例时创建视图。。。
prism:ViewModelLocator.AutowireViewModel="True"