C# MVVM中的Xamarin.Forms bindingContext
进一步 关于绑定上下文 我在看一个实现MVVM的Xamarin.Forms项目,当我查看一个XAML页面时,例如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
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"