Как отобразить счетчик количества оставшихся символов в 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 ";
}