Как отобразить счетчик количества оставшихся символов в EditText на xamarin android

Мой вопрос о том, как отобразить в реальном времени количество символов, оставшихся в EditText в xamarin Android с помощью Mvvm Cross

2 ответа

Рахул, твой вопрос очень общий, поэтому, если мой ответ будет таким, я дам тебе все, чтобы получить счетчик при изменении текста редактирования, привязанного к свойству, остальное тебе следует сделать.

Вы бы создали свойство в вашей viewmodel.

Что-то вроде

Public String ContactName { 
get 
{
return ContactName;
} 
set {
ContactName = value; 
RaisePropertyChange (() => ContactName);
}
}

Это свойство, которое вы привязываете к своему выходу editTest, может выглядеть примерно так.

var set = This.CreateBindingSet<MyView,MyViewModel>();
set.Bind(YourEditText).To(Vm => vm. ContactName). WithConversion("MyConverter");
set.Apply();

Теперь вам нужно написать конвертер, который вернул бы вас int из строки.

Что-то вроде этого.

 public class MyConverter: MvxValueConverter<string, int> 
{
    protected override Int Convert(string value, Type targetType, object parameter, CultureInfo culture)
    {
       return   value.Length;
    }

}

И это даст вам именно то, что вы хотели.

           // xaml page 

    <StackLayout Grid.Row="4" Orientation="Vertical" VerticalOptions="Start">
            <Label Text="Document Description:" FontSize="20"  
    TextColor="Black"/>
            <Frame CornerRadius="5"  Padding="20">
                <StackLayout>
                    <controls:BorderlessEditor  AutoSize="TextChanges" 
 Placeholder="Enter Description" x:Name="CharacterEntry" 
 TextChanged="CharacterEntry_TextChanged" MaxLength="500"/>
                </StackLayout>
            </Frame>
            <Label x:Name="CharacterCount" TextColor="Red"/>
        </StackLayout> 
        
        
        
    // xaml.cs page     
    
    
    private void CharacterEntry_TextChanged(object sender, TextChangedEventArgs e)
    {
        int maxcount = 500;
        CharacterCount.Text = Convert.ToString(maxcount - CharacterEntry.Text.Length) + " characters are left ";
    }
Другие вопросы по тегам