Skip to main content

EditBase.EndIconCommand Property

Specifies the command executed when a user taps the trailing icon.

Namespace: DevExpress.XamarinForms.Editors

Assembly: DevExpress.XamarinForms.Editors.dll

NuGet Package: DevExpress.XamarinForms.Editors

#Declaration

C#
public ICommand EndIconCommand { get; set; }

#Property Value

Type Description
ICommand

A command that exposes the ICommand interface.

#Remarks

Use the EndIconCommand property to set the action that occurs when a user taps the end icon. The EndIconCommandParameter property allows you to pass data to EndIconCommand.

You can also use the EndIconClicked event to define the action on end icon tap.

#Example

This example shows how to create a custom command with a parameter and execute it when a user taps the start icon.

  1. In a view model, create a command that implements the ICommand interface:

    using System.ComponentModel;
    using System.Windows.Input;
    
    namespace TestICommand.ViewModels {
        public class CopyCommand : ICommand {
            public event EventHandler CanExecuteChanged;
    
            MainViewModel viewModel;
            public CopyCommand(MainViewModel viewModel) {
                this.viewModel = viewModel;
            }
    
            public bool CanExecute(object Login) {
                return true;            
            }
    
            public void Execute(object Login) {
                viewModel.LoginText = viewModel.NameText;
            }
        }
    
        public class MainViewModel : INotifyPropertyChanged {
            public MainViewModel() {
                iconCommand = new CopyCommand(this);
            }
    
            ICommand iconCommand = null;
            public ICommand IconCommand {
                get { return iconCommand; }
                set { 
                    if (iconCommand != value) {
                        iconCommand = value;
                        OnPropertyChanged("IconCommand");
                    }
                }
            }
    
            public event PropertyChangedEventHandler PropertyChanged;
            protected void OnPropertyChanged(string name) {
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
            }
    
            string loginText = "";
            public string LoginText {
                get { return loginText; }
                set {
                    loginText = value;
                    OnPropertyChanged("LoginText");
                }
            }
    
            string nameText = "";
            public string NameText {
                get { return nameText; }
                set {
                    nameText = value;
                    OnPropertyChanged("NameText");
                }
            }
        }
    }
    
  2. Bind the specified command to the StartIconCommand property and define the StartIconCommandParameter value:

    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:local="clr-namespace:TestICommand"
            xmlns:vm="clr-namespace:TestICommand.ViewModels"
            x:Class="TestICommand.MainPage"
            xmlns:dxe="http://schemas.devexpress.com/xamarin/2014/forms/editors">
        <ContentPage.BindingContext>
            <vm:MainViewModel/>
        </ContentPage.BindingContext>
        <StackLayout>
            <dxe:TextEdit x:Name="NameEditor" 
                          Text="{Binding NameText}"
                          LabelText="First Name"/>
    
            <dxe:TextEdit x:Name="LoginEditor" 
                          Text="{Binding LoginText}" 
                          LabelText="Login" 
                          StartIcon="icon" 
                          StartIconCommand="{Binding IconCommand}" 
                          StartIconCommandParameter="{Binding Source={x:Reference NameEditor}, Path=Text}"
                          HelpText="Tap the icon to use your first name as login"/>
        </StackLayout>
    </ContentPage>
    
See Also