2015-10-09 28 views
1

我有一個pcl dll(Xamarin),所有的視圖模型,模型,服務,接口,轉換器都在這個項目上。如何使用適用於Windows Phone通用平臺的MVVMCross連接View和ViewModel?

我已經在Android和IOS上使用這個核心,現在將啓動Windows Phone應用程序。

我現在的主要問題是,如何爲視圖製作viewmodel datacontext。對於樣本:LoginViewModel.cs(核心)和LoginView.xaml ...

我使用MVVMCross和Windows手機項目是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(); 
     } 

但現在我得到這個錯誤:「‘LoginView’的嚴重性代碼說明項目文件行 錯誤CS0263分部聲明一定不能指定不同的基類「

基於示例,我嘗試了一種不同的方式,而不是製作視圖模型的視圖,我創建了ViewModel作爲屬性並將其設置爲DataContext視圖。 像這樣:

公共密封部分類LoginView:MvxWindowsPage { 公開新LoginViewModel視圖模型 { 得到{(LoginViewModel)base.ViewModel; } set {base.ViewModel = value; }}

 public LoginView() 
     { 
      this.InitializeComponent(); 
      this.DataContext = ViewModel; 
     } 

但這樣的視圖模型不會與所需的參數開始......(IServices)

這讓我認爲更好的形式給出的是第一:

public sealed partial class LoginView : MvxWindowsPage<LoginViewModel> but I get error... 

回答

1

你可以像MvvmCross的其他平臺一樣。

public class LoginPage : MvxWindowsPage<LoginViewModel> 
{ 
} 

內,您的看法,你會看到這樣的事情:

<views:MvxWindowsPage 
    x:Class="somenamspace.Views.LoginPage"> 
<!-- Put your layout here --> 
</views:MvxWindowsPage> 

DataContext的,現在做了這一觀點。

+1

嗨Martijn,但一旦我將view.cs partial class更改爲:public sealed partial LoginView:MvxWindowsPage 我得到這個錯誤:「LoginView的部分聲明不能指定不同的基類」 –

+0

你還將xaml視圖更改爲同一個基類?它們都需要是MvxWindowsPage類型的。你可以在這裏看到:https://github.com/MvvmCross/MvvmCross/blob/4.0/nuspec/WCommonContent/FirstView.xaml.pp – Martijn00

+1

是的,我做了...:

相關問題