Search code examples
xamluwpdependency-propertiesinputscope

InputScope dependency property, XAML designer problems + errors


I have a control that consists of a button and a textbox.

I wanted to set the input scope of the textbox, so I introduced a new dependency property:

public InputScope InputScope
{
    get { return (InputScope)GetValue(InputScopeProperty); }
    set { SetValue(InputScopeProperty, value); } // Notify prop change
}

public static readonly DependencyProperty InputScopeProperty =
            DependencyProperty.Register(nameof(InputScope), typeof(InputScope), typeof(SearchControl), new PropertyMetadata(DependencyProperty.UnsetValue));

In XAML:

<controls:SearchControl InputScope="Number" /> <!-- etc... -->

(Obviously assigning it to the InputScope property of the textbox in the style of this custom control.)

My problem: While this works, the numeric keyboard gets shown when focused, but I have blue underline in the XAML, and also an error message: The TypeConverter for "InputScope" does not support converting from a string.

Is there a way to fix it without a dirty hack?


Solution

  • Is there a way to fix it without a dirty hack?

    You could implement a type converter. Please refer to Tim Heuer's blog post for more information and an example:

    Implementing a type converter in UWP XAML: http://timheuer.com/blog/archive/2017/02/15/implement-type-converter-uwp-winrt-windows-10-xaml.aspx

    You may also want to read this:

    WinRT Replacement for System.ComponentModel.TypeConverter