Enr*_*ico 7 custom-controls xamarin.forms
在我的Xamarin解决方案中,我在Controls解决方案文件夹中添加了一个新的库项目.从我XAML在Views我打电话给我的分量和一切工作正常.
我不知道在更新之后今天是否有什么变化iOS 10,Visual Studio for Mac但是如果我尝试编译我的解决方案,我不会收到错误
System.Reflection.TargetInvocationException:调用目标抛出了异常.---> Xamarin.Forms.Xaml.XamlParseException:位置43:38.在xmlns clr-namespace中找不到类型Donut:Mobile.Controls.Wheel; assembly = Mobile.Controls.Wheel
at Xamarin.Forms.Xaml.Internals.XamlTypeResolver.Xamarin.Forms.Xaml.IXamlTypeResolver.Resolve(System.String qualifiedTypeName,System .IServiceProvider serviceProvider)
该XAML页面是这样定义的:
<ContentPage [...]
xmlns:ctl="clr-namespace:Mobile.Controls.Wheel;assembly=Mobile.Controls.Wheel"
x:Class="Views.DashboardPage">
<StackLayout>
<ctl:Doughnut HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
</StackLayout>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
Doughnut是衍生自类ContentView在Mobile.Controls.Wheel.
我之前在 iOS 上也遇到过同样的问题,
\n\n\n\n\n在 PCL 中添加空类并使用空静态init()方法并在iOS\xe2\x80\x99s AppDelegate方法上调用它可以解决此问题,当 \xe2\x80\x9cDont\xe2\x80\x99t\n Link\xe2\ x80\x9d 或 \xe2\x80\x9c 仅链接 SDK 程序集 \xe2\x80\x9d 在 iOS 构建选项的 \xe2\x80\x9cLinker Options\xe2\x80\x9d 中选择。
\n
在Donut类中,添加一个空的Do-Nothing 静态 Init方法,并从 iOS 的 AppDelegate 调用此方法:
\n\n\n\n\n在 Doughnut.cs 中添加以下方法
\n
//Do Nothing Init Method:\npublic static void Init(){\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n在 AppDelegate.cs 中,在调用LoadApplication之前添加以下行方法
\n
Mobile.Controls.Wheel.Doughnut.Init();\nRun Code Online (Sandbox Code Playgroud)\n\n希望这能解决您的问题,如果需要任何信息,请告诉我。
\n| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |