ジャンプする原因:我々のアプリでMvvmCross Androidのコンバータは、カーソルが、私たちは、AndroidでのEditTextコントロールに関連してMvvmCrossでのコンバータに問題がある
、ユーザは、ユーザデータを挿入します。このデータをコンバーター内で計算してから、ビューモデルにデータを書き込む必要があります。
ユーザーがエントリを元に戻さない限り、これは機能します。 つまり、バックキーを使用すると、 "。"の前の最後の10進数に達するまで値が正しく編集されます。 (たとえば、55.99、55.9に達したとき)。 ".9"は正しく削除されますが、curosorは残りの "55"を上回ります。 この厄介な行動をどうやって解決できますか?
ビューモデルエキス:
private Nullable mdValue1 = null;
public Nullable<decimal> Value1
{
get { return mdValue1; }
set
{
SetProperty(ref mdValue1, value);
}
}
private Nullable<decimal> mdValue2;
public Nullable<decimal> Value2
{
get { return mdValue2; }
set
{
SetProperty(ref mdValue2, value, nameof(Value2));
}
}
コンバータ(簡体字):
public class DecimalToStringValueConverter : MvxValueConverter<Nullable<decimal>, string>
{
protected override string Convert(Nullable<decimal> poValue, Type poTargetType, object poParameter, CultureInfo poCulture)
{
if (!poValue.HasValue)
{
return null;
}
return poValue.Value.ToString();
}
protected override Nullable<decimal> ConvertBack(string value, Type targetType, object parameter, CultureInfo culture)
{
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return decimal.Parse(value);
}
}
構成
アンドロイドバージョン:4.4/5.1/7
プラットフォーム:点を除去し、10進数に変換されたときに起こっていると思わXamarin
こんにちは!まずはお時間をいただきありがとうございます!あなたは私たちを大いに助けてくれました。私たちはXamarinにとって全く新しいです。 curserは今働きます。他の問題は "WeakSubscribe"で盛り上がった。見つけられず、赤色にマークされています。使用するアセンブリはありますか? – Mephistopheles
'WeakSubscribe'は、[Mvvmcross 4.4.0。](https://github.com/MvvmCross/MvvmCross/commit/b2e67d8994859cd68d42fb87a287eb462a44ba49)に追加された' MvvmCross.Platform.WeakSubscription'の下で利用できます。あなたが古いあなたは代わりに 'AfterTextChanged'に直接購読することができます。答えを更新して例を含める。 – Plac3Hold3r
今、4.4に入っています。本当にありがとう、本当にありがとう! – Mephistopheles