"Model"、 "ViewModel"、および "View"の3つのアセンブリを使用してXamarin.Formsソリューションをセットアップしようとしています。多くの場合、Windows WPFアプリケーションの前にあります。異なるアセンブリのクラスを使用したXamarin.Formsバインディング
iOSとAndroidのブートストラッププロジェクトには、それぞれ3つのアセンブリへの参照が両方含まれています。ビューアセンブリはViewModelとModelへの参照を持ち、ViewModelはModelのみを参照します。
ViewModelに単純な「MainPage」を、ViewModel-Assemblyに一致する「MainViewModel」を追加しました。 すべてがコンパイルされ、Visual StudioのXamarin.Forms-Previewerは、ViewModelへのバインディングを介してLabel-Textが表示されるプレビューを表示します。
Androidのシミュレータでは、アプリケーションが正常に動作します。 iOSでは、ページを表示しようとするとクラッシュします。
これは多くのことが関係していると思います.iOSはあらかじめコンパイルを使用しています。あるいは、xamnsでxmlnsタグを定義する際に何か問題があるかもしれません。
処理されない例外: Xamarin.Forms.Xaml.XamlParseException:位置8:10。 タイプVM: のxmlns CLR名前空間には見られないMainPageViewModel:MyApp3.ViewModel;アセンブリ= MyApp3.ViewModel
コード:
namespace MyApp3.ViewModel
{
public class MainPageViewModel
{
public string MyText { get; set; } = "Some Text";
}
}
とページ:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MyApp3"
xmlns:vm="clr-namespace:MyApp3.ViewModel;assembly=MyApp3.ViewModel"
x:Class="MyApp3.View.MainPage">
<ContentPage.BindingContext>
<vm:MainPageViewModel />
</ContentPage.BindingContext>
<ContentPage.Content>
<StackLayout>
<Label Text="{Binding MyText}"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
は私だけですかミスいくつかの隠された設定またはこれは私が1つのアセンブリ内に自分のコードを保持するための制限ですか?