1
是否有綁定一個decimal
到WPF文本框和指定StringFormat
(在這種情況下貨幣)的方法嗎?我試着在視圖模型的屬性這樣做,但因爲它試圖後應用的格式編輯在TextBox變得有點古怪每一次擊鍵:綁定文本框與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
的方法嗎?對我來說,這將是一個理想的解決方案
UPDATE
在設置DataContext
的情況下,我意識到,我應該只把它分配給ViewModel
當ViewModel.Model
變化,模板反映的變化正如它應該。這裏是我的更新XAML:
<TextBox Text="{Binding Path=Model.Moneys, StringFormat=C0}" />
不過,我還是想知道,如果你可以在代碼中設置StringFormat
後面使用ReactiveUI
。