LittleFunny
LittleFunny

Reputation: 8405

Xamarin: Cannot find the IValueConverter

I tried to use my custom IValueConverter which declared in the Xaml file.

The Converter Class was defined inside the EnglishKeyboard. The convert declared in a ResourceDictionary inside the xaml below. I tried to use this converter at the end of the code below

<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:local="clr-namespace:ProjectorRemote" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="ProjectorRemote.EnglishKeyboard"
    x:Name="englishKeyboard">
<ContentView.Resources>
    <ResourceDictionary>

        <local:EnglishKeyboard.StringCaseConverter x:Key="caseConverter">
        </local:EnglishKeyboard.StringCaseConverter>

        <!-- lower 1 characters  -->
        <x:String x:Key="lower_1">q</x:String>
        <x:String x:Key="lower1_2">w</x:String>
        <x:String x:Key="lower1_3">e</x:String>
        <x:String x:Key="lower1_4">r</x:String>         
        <x:String x:Key="lower1_5">t</x:String>
        <x:String x:Key="lower1_6">y</x:String>
        <x:String x:Key="lower1_7">u</x:String>
        <x:String x:Key="lower1_8">i</x:String>
        <x:String x:Key="lower1_9">o</x:String>
        <x:String x:Key="lower1_0">p</x:String>

    </ResourceDictionary>
</ContentView.Resources>
<ContentView.Content>
    <StackLayout 
            Orientation="Vertical"  
            HorizontalOptions="Fill"
            VerticalOptions="End">

        <Grid HorizontalOptions="Center" ColumnSpacing="1">

            **<local:BaseKeyView
                Grid.Column="0" 
                Text="{StaticResource lower1_1, 
                    Converter={StaticResource caseConverter}, 
                    ConverterParameter={Binding IsUpper}}">
            </local:BaseKeyView>** 

It work with no error but the converter didn't get called after I changed to the code below

<local:BaseKeyView
                Grid.Column="0" 
                Text="{StaticResource lower1_1, 
                    Converter={StaticResource caseConverter}, 
                    ConverterParameter={Binding IsUpper}}">
            </local:BaseKeyView>

Upvotes: 0

Views: 285

Answers (1)

LittleFunny
LittleFunny

Reputation: 8405

I fixed the problem by changing to this

{Binding Source={StaticResource lower1_1}, Converter={ ..... –

Upvotes: 1

Related Questions