Тип не найден в пространстве имен XAML - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь получить доступ к классу метода из файла XAML.

Мой класс находится в папке: project.Utils.

Добавление на страницу содержимого xaml:

xmlns:local="project.Utils"

Я пытаюсь использовать myConverterMethod класс внутри папки Utils и использовать его как:

Converter={StaticResource myConverterMethod}

, но error Type myConverterMethod not found in xmlns project.Utils.

Где моя ошибка?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Невозможно сослаться на 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;
    }
}

Определить созданный конвертер в доступной области: Page / View или Application.Под областью я подразумеваю ресурсы:

<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 есть очень хорошая документация , которая ответит на всеваши вопросы, и это, как правило, хорошие примеры кода.

0 голосов
/ 08 октября 2018

Вы можете использовать

xmlns:local="clr-namespace:project.Utils;assembly=project"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...