Formatting Value in Xamarin Masked Entry (SfMaskedEdit)

17 May 20213 minutes to read

SfMaskedEdit allows you to format the characters in the Value property in a mask scenario (when the Mask property is set). By default, the Value property holds your input characters, prompt characters and the literals defined in the mask. You can modify this and allow the Value property to hold the characters without prompt and literals by setting the ValueMaskFormat property of the control. The Value in the SfMaskedEdit is formatted by any one of the following formatting enum values:

  • ExcludePromptAndLiterals
  • IncludePrompt
  • IncludeLiterals
  • IncludePromptAndLiterals

ExcludePromptAndLiterals

Value contains only the typed characters, the prompt characters and literals are excluded.

IncludePrompt

Value contains the typed characters and prompt characters, literals are excluded.

IncludeLiterals

Value contains the typed characters and literals, prompt characters are excluded.

IncludePromptAndLiterals

Value contains typed characters, prompt characters, and literals.

<syncmaskededit:SfMaskedEdit x:Name="maskedEdit1" MaskType="Text" Mask="00/00/0000" ValueMaskFormat="ExcludePromptAndLiterals"/>

<Label BindingContext="{x:Reference maskedEdit1}" Text="{Binding Value}" />

<syncmaskededit:SfMaskedEdit x:Name="maskedEdit2" MaskType="Text" Mask="00/00/0000" ValueMaskFormat="IncludeLiterals"/>

<Label BindingContext="{x:Reference maskedEdit2}" Text="{Binding Value}" />

<syncmaskededit:SfMaskedEdit x:Name="maskedEdit3" MaskType="Text" Mask="00/00/0000" ValueMaskFormat="IncludePrompt"/>

<Label BindingContext="{x:Reference maskedEdit3}" Text="{Binding Value}" />

<syncmaskededit:SfMaskedEdit x:Name="maskedEdit4" MaskType="Text" Mask="00/00/0000" ValueMaskFormat="IncludePromptAndLiterals"/>

<Label BindingContext="{x:Reference maskedEdit4}" Text="{Binding Value}" />
Label label1;
Label label2;
Label label3;
Label label4;
SfMaskedEdit maskedEdit1;
SfMaskedEdit maskedEdit2;
SfMaskedEdit maskedEdit3;
SfMaskedEdit maskedEdit4;

StackLayout stackLayout = new StackLayout();
maskedEdit1 = new SfMaskedEdit();
maskedEdit1.MaskType = MaskType.Text;
maskedEdit1.Mask = "00/00/0000";
maskedEdit1.ValueMaskFormat = MaskFormat.ExcludePromptAndLiterals;
maskedEdit1.ValueChanged += MaskedEdit1_ValueChanged;
label1 = new Label();
stackLayout.Children.Add(maskedEdit1);
stackLayout.Children.Add(label1);

maskedEdit2 = new SfMaskedEdit();
maskedEdit2.MaskType = MaskType.Text;
maskedEdit2.Mask = "00/00/0000";
maskedEdit1.ValueMaskFormat = MaskFormat.IncludeLiterals;
maskedEdit2.ValueChanged += MaskedEdit2_ValueChanged;
label2 = new Label();
stackLayout.Children.Add(maskedEdit2);
stackLayout.Children.Add(label2);

maskedEdit3 = new SfMaskedEdit();
maskedEdit3.MaskType = MaskType.Text;
maskedEdit3.Mask = "00/00/0000";
maskedEdit3.ValueMaskFormat = MaskFormat.IncludePrompt;
maskedEdit3.ValueChanged += MaskedEdit3_ValueChanged;
label3 = new Label();
stackLayout.Children.Add(maskedEdit3);
stackLayout.Children.Add(label3);

maskedEdit4 = new SfMaskedEdit();
maskedEdit4.MaskType = MaskType.Text;
maskedEdit4.Mask = "00/00/0000";
maskedEdit4.ValueMaskFormat = MaskFormat.IncludePromptAndLiterals;
maskedEdit4.ValueChanged += MaskedEdit4_ValueChanged;
label4 = new Label();
stackLayout.Children.Add(maskedEdit4);
stackLayout.Children.Add(label4);


private void MaskedEdit1_ValueChanged(object sender, Syncfusion.XForms.MaskedEdit.ValueChangedEventArgs e)
{
    label1.Text = e.Value as string;
}

private void MaskedEdit2_ValueChanged(object sender, Syncfusion.XForms.MaskedEdit.ValueChangedEventArgs e)
{
    label2.Text = e.Value as string;
}

private void MaskedEdit3_ValueChanged(object sender, Syncfusion.XForms.MaskedEdit.ValueChangedEventArgs e)
{
    label3.Text = e.Value as string;
}

private void MaskedEdit4_ValueChanged(object sender, Syncfusion.XForms.MaskedEdit.ValueChangedEventArgs e)
{
    label4.Text = e.Value as string;
}

Refer this link to know more about the ValueChanged event of SfMaskedEdit control.

ValueFormat support in Xamarin.Forms masked edit