在XAML命名空间上找不到类型

时间:2018-10-08 11:01:56

标签: xaml xamarin xamarin.forms namespaces

我正在尝试从XAML文件访问方法类。

我的课在文件夹上:project.Utils。

在xaml内容页面上添加:

xmlns:local="project.Utils"

我尝试在Utils文件夹中使用myConverterMethod类,并将其用作:

Converter={StaticResource myConverterMethod}

但是error Type myConverterMethod not found in xmlns project.Utils

我的错在哪里?

2 个答案:

答案 0 :(得分:0)

您可以使用

xmlns:local="clr-namespace:project.Utils;assembly=project"

答案 1 :(得分:0)

在特定类中不能引用Method,而只能引用IValueConverter

为了实现所需的功能,您需要定义一个实现IValueConverter的类:

public class IntToBoolConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (int)value != 0;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (bool)value ? 1 : 0;
    }
}

在可访问范围内定义创建的转换器:页面/视图或应用程序。范围是指资源:

<ContentPage.Resources>
    <ResourceDictionary>
        <local:IntToBoolConverter x:Key="intToBool" />
    </ResourceDictionary>
</ContentPage.Resources>

并最终以以下方式消耗转换器:

<Button Text="Search"
    HorizontalOptions="Center"
    VerticalOptions="CenterAndExpand"
    IsEnabled="{Binding Source={x:Reference entry1},
    Path=Text.Length,
    Converter={StaticResource intToBool}}" />

Xamarin有一个非常不错的documentation,它将回答您所有的问题,并且通常具有良好的代码示例。