当我在App.xaml中声明MainViewModel类时,我在加载时得到这个错误:
Xamarin.Forms.Xaml。XamlParseException: Position 7:6。不能分配属性"Resources":在"MyPCL.Client.ViewModels. view "之间的类型不匹配。" MainViewModel"one_answers"Xamarin.Forms.ResourceDictionary"
<Application.Resources>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</Application.Resources>
我如何在全局ViewModel上声明,以便在每个页面上我都可以这样做:
BindingContext="{StaticResource MainViewModel}"
您需要在Application.Resources
标签中声明ResourceDictionary
:
<Application.Resources>
<ResourceDictionary>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</ResourceDictionary>
</Application.Resources>
您也可以创建一个新的衍生ContentPage
,在构造函数中将其设置为BindingContext
,如下所示:
public class MainContentPage : ContentPage {
protected MainViewModel viewModel;
public MainContentPage() { BindingContext = (viewModel = new MainViewModel()); }
}
应该是:
<Application.Resources>
<ResourceDictionary>
<viewModels:MainViewModel x:Key="MainViewModel"/>
</ResourceDictionary>
</Application.Resources>
作为错误消息指出。