当我在App.xaml中声明我的MainViewModel类时,我在加载时遇到此错误:
Xamarin.Forms.Xaml.XamlParseException:位置7:6。无法分配属性“资源”:“MyPCL.Client.ViewModels.MainViewModel”和“Xamarin.Forms.ResourceDictionary”之间的类型不匹配
<Application.Resources>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</Application.Resources>
如何在全局ViewModel上声明,以便我可以在每个页面上执行此操作:
BindingContext="{StaticResource MainViewModel}"
答案 0 :(得分:2)
您需要在ResourceDictionary
代码中声明Application.Resources
:
<Application.Resources>
<ResourceDictionary>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</ResourceDictionary>
</Application.Resources>
答案 1 :(得分:0)
您也可以创建一个新的派生ContentPage
,在构造函数中设置BindingContext
,如下所示:
public class MainContentPage : ContentPage {
protected MainViewModel viewModel;
public MainContentPage() { BindingContext = (viewModel = new MainViewModel()); }
}
答案 2 :(得分:0)
应该是:
<Application.Resources>
<ResourceDictionary>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</ResourceDictionary>
</Application.Resources>
正如错误消息所指出的那样。你快到了。