Xamarin.Forms.Xaml.XamlParseException:未找到标记扩展

piok6c0g  于 2022-12-25  发布在  其他
关注(0)|答案(2)|浏览(125)

我试图使用一个自定义的标记扩展与Xamarin表单,以便最终实现本地化。我试图去一个较长的行Xamarin表单的例子。
以下是使用扩展名的XAML代码片段:

<?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:CRI.MAP.Mobile.Views;assembly=CRI.MAP.Mobile"
    x:Class="CRI.MAP.Mobile.Views.CustomerSearchPage">

    <StackLayout>
        <Button 
            Text="{local:Translate Clear}"  
            Command="{Binding ClearCommand}" />
    </StackLayout>

以下是翻译扩展标记的代码:

using System;
using Xamarin.Forms.Xaml;
using Xamarin.Forms;
using System.Diagnostics;

namespace CRI.MAP.Mobile.Views
{
    // You exclude the 'Extension' suffix when using in Xaml markup
    [ContentProperty ("Text")]
    public class TranslateExtension : IMarkupExtension
    {
        public string Text { get; set; }

        public object ProvideValue (IServiceProvider serviceProvider)
        {
            //if (Text == null)
            //  return null;
            //Debug.WriteLine ("Provide: " + Text);
            // Do your translation lookup here, using whatever method you require
            //var translated = L10n.Localize (Text); 

            //return translated;
            return "hello";
        }
    }
}

我注解掉了一些代码,以防这是问题的原因。
每当我尝试运行这个程序时,我都会收到错误消息:Xamarin.Forms.Xaml.XamlParseException:没有找到local:Translate的MarkupExtension。我很困惑为什么它没有找到标记扩展,因为我看到的所有例子似乎都是以同样的方式完成的。有人知道为什么会这样吗?我在寻找Xamarin表单的好例子时遇到了很多麻烦。

k4aesqcs

k4aesqcs1#

程序集名称错误。我使用的是Xamarin窗体的共享项目,并将共享项目的名称作为程序集的名称。因此,如果您有共享项目,则程序集的名称必须是使用共享项目的程序集。

ct3nt3jp

ct3nt3jp2#

在我的情况下,它是不工作时,我连接到iPhone,它是开始工作后,作出如下更改

打开IOS项目

1.打开选项/属性窗口
1.转到选项卡iOS构建
1.链接器行为:仅链接框架SDK(如果已选择,则使用“链接全部”进行更改)

相关问题