我有一个pcl dll(Xamarin),所有的视图模型,模型,服务,接口,转换器都在这个项目上。
我已经在Android和IOS上使用此核心,现在将启动Windows Phone应用程序。
我现在的主要问题是,如何使viewmodel成为视图的datacontext。对于示例:LoginViewModel.cs(核心)和LoginView.xaml ...
我正在使用MVVMCross,Windows Phone项目是8.1
比你提前。
更新
我试过了:
<views:MvxWindowsPage
x:Class="Tocalivros.WindowsPhone.Views.LoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Tocalivros.WindowsPhone.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:Cirrious.MvvmCross.WindowsCommon.Views"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
public sealed partial class LoginView : MvxWindowsPage<LoginViewModel>
{
public LoginView()
{
this.InitializeComponent();
}
但现在我收到此错误:&#34;严重程度代码说明项目文件行 错误CS0263&#39; LoginView&#39;的部分声明不得指定不同的基类&#34;
根据示例,我尝试了不同的方法,而不是创建类型视图模型的视图,我创建一个ViewModel作为属性并将其设置为视图的DataContext。 像这样:
public sealed partial class LoginView:MvxWindowsPage { public new LoginViewModel ViewModel { get {return(LoginViewModel)base.ViewModel; } set {base.ViewModel = value; } }
public LoginView()
{
this.InitializeComponent();
this.DataContext = ViewModel;
}
但是这样,viewmodel不会以所需的参数启动...(IServices)
这让我觉得最好的方法是第一个:
public sealed partial class LoginView : MvxWindowsPage<LoginViewModel> but I get error...
答案 0 :(得分:1)
您可以使用MvvmCross中的其他平台。
public class LoginPage : MvxWindowsPage<LoginViewModel>
{
}
在您的视图中,您会看到以下内容:
<views:MvxWindowsPage
x:Class="somenamspace.Views.LoginPage">
<!-- Put your layout here -->
</views:MvxWindowsPage>
现在为该视图完成了datacontext。