我想設置一個Xamarin.Forms解決方案,使用三個程序集「模型」,「視圖模型」和「視圖」來分離我的代碼根據像我這樣的MVVM風格往往在Windows WPF應用程序中。Xamarin.Forms綁定使用不同程序集的類
iOS和Android引導程序項目對這三個程序集中的每一個都有引用View-Assembly具有對ViewModel和Model的引用,ViewModel只引用Model。
我在View-Assembly中添加了一個簡單的「MainPage」,並在ViewModel-Assembly中添加了匹配的「MainViewModel」。 一切都很好,Visual Studio中的Xamarin.Forms-Previewer顯示了一個預覽,其中標籤文本通過綁定到ViewModel來顯示。
在Android模擬器上,應用程序按預期工作。 在iOS上,它嘗試顯示頁面時崩潰。
我想這有很多事情要做:iOS正在使用提前編譯。或者,也許我在xaml中定義xmlns標記時會出錯。
未處理的異常: Xamarin.Forms.Xaml.XamlParseException:位置8:10。
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>
難道我只是錯過; 類型VM:裝配= MyApp3.ViewModel
代碼MyApp3.ViewModel:MainPageViewModel不 的xmlns CLR的命名空間中一些隱藏的設置,或者這是一個限制,所以我必須保持我的代碼在一個大會內?