0
数字を受け付けるエントリに文字列を入力できないようにするには、以下のコードを使用しています。文字列だけを受け入れ、数字を受け入れる必要のないエントリに対して、これをどのように逆にすることができますか?xamarinフォームの動作:数字ではなくエントリ内の文字列のみを許可する
private static void OnEntryTextChanged(object sender, TextChangedEventArgs args) {
if(!string.IsNullOrWhiteSpace(args.NewTextValue)) {
bool isValid = args.NewTextValue.ToCharArray().All(IsDigit); //Make sure all characters are numbers
((Entry)sender).Text = isValid ? args.NewTextValue : args.NewTextValue.Remove(args.NewTextValue.Length - 1);
}
}
/// <summary>
/// Check to see if a character is a digit.
/// </summary>
/// <param name="c">The character to check.</param>
/// <returns><c>true</c> if the character is between <c>0</c> and <c>9</c>.</returns>
private static bool IsDigit(char c) {
if(c >= 48) {
return c <= 57;
}
return false;
}
bool isValid = args.NewTextValue.ToCharArray()の呼び出しを置き換えます。すべて(IsDigit); ToCharArray()ToCharArray()。All(char.IsLetter); args.NewTextValue.ToCharArray –
このコードは、カーソルの位置が最後にない場合は検証されません。最後の文字のみが削除されます。新しいキャラクターではない – Ada