私はMvvmCrossフレームワークでXamarin.iOS
、Xamarin.Android
、UWP
のクロスプラットフォームアプリケーションを作成しています。MvvmCross MvxWindowsPage <TViewModel>コンパイルエラー
LoginViewModelを持つLoginPageを作成しています。 Xamarin.iOS
、Xamarin.Android
プロジェクトでは、ViewModelに以下とビューの結合は
public class LoginActivity : MvxAppCompatActivity<LoginViewModel>
public partial class LoginViewController : MvxViewController<LoginViewModel>
UWP
プロジェクトで上記と同じようにやろうと、私はいくつかのエラーを取得するだけで正常に動作します。 XAMLで
:
<views:MvxWindowsPage
x:TypeArguments="viewModels:LoginViewModel" x:Class="MyApp.UWP.Views.LoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:MvvmCross.WindowsUWP.Views"
xmlns:viewModels="using:MyApp.PresentationCore.ViewModels"
mc:Ignorable="d">
そして、私のC#のコードは
public sealed partial class LoginView : MvxWindowsPage<LoginViewModel>
あるしかし、私はコンパイルエラーを取得します。どうすれば解決できますか?
- 要素に `不明なメンバー 'TypeArguments' 'MvxWindowsPage'
- 名 "LoginViewModelは" "を使用して:MyApp.PresentationCore.ViewModelsの" 名前空間に存在しません。
- 'MvvmCross.WindowsUWP.Views.MvxWindowsPage`1 [TViewModel]のGenericArguments [0]、' System.Object 'は' TViewModel 'タイプの 制約に違反します。
は、私が最初のエラーで何のテンプレートバージョンが存在しないため、エラーが少しあいまいであると思いますが、第三のエラーは、テンプレートの制約違反についてです。
ViewModelとViewを命名規則または属性でバインドするオプションがありますが、この厳密に型指定されたソリューションを使用したいと思います。
あなたはこの問題を再現することができ、基本的なデモを共有していただけますか? –
私はMvvmCrossソリューションのチームプレートから始まる基本的なデモを作成しました。あなたはそれにアクセスできます[ここ](https://github.com/cviktor/MvvmCrossExample)私が変更したのは、UWPプロジェクトのFirstViewの基本クラスだけです。 – cviktor