decimal
をWPF TextBoxにバインドし、StringFormat
(この場合は通貨)を指定する方法はありますか?私は、ビューモデル内のプロパティでこれをやって試してみたが、それはすべてのキーストロークの後に書式を適用しようとするテキストボックスでの編集は少し風変わりな次のようになります。ReactiveUIを使用してテキストボックスをバインドし、通貨形式を維持する
public string Moneys
{
get
{
return string.Format("{0:C}", Model.Moneys);
}
set
{
if (decimal.TryParse(value, NumberStyles.Currency, null, out decimal decimalValue))
{
Model.Moneys = decimalValue;
}
}
}
私はDataContext
を設定しようとしたとXAMLデータを使用しました代わりにバインドします。 XAML:背後
<TextBox Text="{Binding Path=Moneys, StringFormat=C0}" />
コード:私はに期待したいと
this.WhenAnyValue(x => x.ViewModel.Model)
.Subscribe(x =>
{
DataContext = x;
});
しかし、DataContext
{Binding}
を変更した後に変更されません。
this.Bind
を使用してStringFormat
を指定する方法はありますか?私にとって、それはDataContext
を設定する場合には理想的なソリューション
UPDATE
だろう、私はちょうどそれを割り当てるべきであることに気づいViewModel
とViewModel.Model
変更は、テンプレートは、変更を反映するときそれはすべきだ。ここに私の更新のXAMLです:
<TextBox Text="{Binding Path=Model.Moneys, StringFormat=C0}" />
は、しかし、私はまだあなたがReactiveUI
を使用しての背後にあるコードでStringFormat
を設定することができますかどうかを知りたいと思います。