Description XFX Controls are just a few controls that differ from the baked in Xamarin.Forms Controls. XF Component iOS Android ...

Material Entry & Autocomplete for Xamarin.Forms Material Entry & Autocomplete for Xamarin.Forms

Material Entry & Autocomplete for Xamarin.Forms

Material Entry & Autocomplete for Xamarin.Forms

Description XFX Controls are just a few controls that differ from the baked in Xamarin.Forms Controls.
XF ComponentiOS Android UWP Mac
XfxEntry
XfxComboBox

Overview

Getting Started

Android

In your MainActivity, initialize XfxControls just before initializing Xamarin Forms
XfxControls.Init();
global::Xamarin.Forms.Forms.Init(this, bundle);
note: XfxEntry and XfxComboBox Requires your app to use an AppCompat theme.

iOS

In your AppDelegate, initialize XfxControls just before initializing Xamarin Forms
XfxControls.Init();
global::Xamarin.Forms.Forms.Init();

Demos

AndroidiOS
Android demoiOS demo

Code

Declaration is exactly the same as a Xamarin.Forms.Entry, with some added properties

XfxEntry

<!-- XfxEntry-->
<xfx:XfxEntry Placeholder="Enter your name"
              Text="{Binding Name}"
              ErrorText="{Binding NameErrorText}" />
When the ErrorText property is set, the ErrorText will display, otherwise if it is null or empty, it's removed.

XfxComboBox

<!-- XfxComboBox-->
<xfx:XfxComboBox Placeholder="Enter your email address"
                Text="{Binding EmailAddress}"
                ItemsSource="{Binding EmailSuggestions}"
                SortingAlgorithm="{Binding SortingAlgorithm}"/>
The XfxComboBox extends the XfxEntry and therefore also includes the ErrorText property.
Beyond that there is an ItemsSource property, SelectedItem property, and a SortingAlgorithm property.
The first two are pretty self explanitory, but here's an example of how you can set the SortingAlgorithm
public class MyViewModel : INotifyPropertyChanged
{
    public Func<string, ICollection<string>, ICollection<string>> SortingAlgorithm { get; } = (text, values) => values
        .Where(x => x.ToLower().StartsWith(text.ToLower()))
        .OrderBy(x => x)
        .ToList();
}

Contributions / Thanks

License

Licensed MIT, please review the license file.

Github Link

3 comments: