ユーザーは自分の年齢を入力する必要があるフォームを作成する必要があります。あなただけはできた数字を受け入れるようにEntry
を制限するには...カンマまたは小数点の区切り記号を付けずにXamarin Forms Entry Numeric Keyboardを指定することはできますか?
答えて
を
<Entry
x:Name="AgeEntry"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
Keyboard="Numeric"
/>
が、それは、私は数字だけを表示したいでも小数点文字を、示しています。私は、数字のキーボードを使用したいですBehaviorまたはTriggerを使用してください。
どちらも、入力したユーザーに反応します。だからあなたの使用のために、トリガーや行動を数字ではない文字を探して削除することができます。
行動については、この(私はSOすべてを上書き、それが動作しない場合は私に知らせて、それをコンパイルしようとしなかったことに注意してください)のようなもの:
using System.Linq;
using Xamarin.Forms;
namespace MyApp {
public class NumericValidationBehavior : Behavior<Entry> {
protected override void OnAttachedTo(Entry entry) {
entry.TextChanged += OnEntryTextChanged;
base.OnAttachedTo(entry);
}
protected override void OnDetachingFrom(Entry entry) {
entry.TextChanged -= OnEntryTextChanged;
base.OnDetachingFrom(entry);
}
private static void OnEntryTextChanged(object sender, TextChangedEventArgs args)
{
if(!string.IsNullOrWhiteSpace(args.NewTextValue))
{
bool isValid = args.NewTextValue.ToCharArray().All(x=>char.IsDigit(x)); //Make sure all characters are numbers
((Entry)sender).Text = isValid ? args.NewTextValue : args.NewTextValue.Remove(args.NewTextValue.Length - 1);
}
}
}
}
その後、あなたのXAMLで:
に<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MyApp;assembly=MyApp"> <!-- Add the local namespace so it can be used below, change MyApp to your actual namespace -->
<Entry x:Name="AgeEntry"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
Keyboard="Numeric">
<Entry.Behaviors>
<local:NumericValidationBehavior />
</Entry.Behaviors>
</Entry>
</ContentPage>
@Falcoちょうどそれをテストし、ロジックに問題がありました。前のバージョンを使ってみたら、もう一度コードをコピーしてみてください。 – hvaughan3
こんにちは、ありがとう、あなたは非常に親切です、私はToCharArray()内のAll()を見つけることができません、それはコンパイルされません...とにかく私はどのようにbahaviorが動作し、あなたのコードでその行を変更しました。とにかく私はXamarinの新人です。そして、私はいくつかの考えが組み込まれていないのに驚いています...最高のことは、キーボードの "ポイント"を一切表示しないことでした。私はカスタムキーボードを作成する方法を勉強します... – Falco
@Falco喜んでお手伝いします。 'All()'をコンパイルするには、クラスの先頭に 'using System.Linq;'を追加する必要があります(私のサンプルコードで追加しました)。私は、カスタムキーボードを作ることはかなり難しいかもしれないが、それは自分で多く学んだことではないと言うだろう。 – hvaughan3
- 1. 小数点区切り記号Navision Xmlport
- 2. 区切り記号として区切り記号の前または後にカンマ区切りでカンマを区切る方法
- 3. 小数を変更せずにカンマ(区切り記号)を数値に追加しますか?
- 4. VBblのCDblと小数点区切り記号 - 地域設定をバイパスする方法はありますか?
- 5. Talendに複数の行区切り記号を付けることはできますか?
- 6. Angularjs小数点記号カンマ
- 7. カンマで区切った数字を桁区切り記号として記録する方法は?
- 8. ASP.netのテキストボックスに「区切り記号」を付けることはできますか? (C#)
- 9. 6区切り記号なしの浮動小数点#
- 10. は小数点区切り
- 11. カンマまたはポイントを区切り記号として明示的に使用して、Python文字列を浮動小数点数に変換する
- 12. カンマ区切り号
- 13. 数字を "。"でフォーマットする方法千の区切り記号として "、"小数点区切り記号として?
- 14. 両方の小数点区切り文字をカンマとドットで区切ってDoubleに変換する方法
- 15. カンマをスクリプトの小数点区切りにして、Oracleデータベースの任意のローカライゼーションで実行することを指定しました
- 16. 小数点区切り記号としてカンマを使用してcsvを書き込むにはどうすればよいですか?
- 17. VSTOリボンコンボボックス(区切り記号付き)
- 18. CSSで数値(小数点以下の桁数、桁区切り記号など)を書式設定する
- 19. カンマ区切り記号を省略する場合
- 20. アメリカ合衆国の都市、州、およびXML、JSONまたはカンマ区切りの区切り記号は区切られていますか?
- 21. CString.Format()の地域設定の小数点区切り記号を使用します。
- 22. 正規表現で区切り記号を付ける - python
- 23. SolrのSimplePOSTToolに別の区切り記号(カンマではない)を付けてください
- 24. 日付要素区切り記号または区切り文字に関するDateTime.TryParse APIの内部動作
- 25. Androidでの小数点または小数点のカンマ
- 26. マイナス記号が左側にあり、カンマが区切り記号として表示されています
- 27. 1つの関数に複数の省略記号を付けることはできますか?
- 28. Android - 文字列を小数点記号としてカンマまたはポイントの両方で解析する方法
- 29. データグリッド列にカンマの代わりにドット区切り記号を追加する
- 30. 行区切り記号ですが、浮動小数点数のテキストが残っています
プラットフォーム間で動作するように独自のキーボードを作成する必要があります。しかし、ユーザーがそれを使用できないように入力するとすぐにコンマと小数点記号を消去するトリガーを簡単に追加することができます。あなたがそのコードを見たいと思ったら教えてください。 – hvaughan3
...そうですね、そのコードを見れば助かります。私は非常に新しいxamarinコードです – Falco