我正在尝试制作货币格式的文本框,但它不起作用。
XAML:
<TextBox x:Name="_valueTxt" Text="{Binding Amount, StringFormat={}{0:C}}"/>
背后的代码:
...
string _amount;
public string Amount
{
get { return _amount; }
set { _amount = value; }
}
...
public MyWindow()
{
Amount = "1235533";
InitializeComponent();
}
我希望在我的文本框中看到的值:
$1.235.533,00
但它显示:
1235533
最佳答案
如果绑定(bind)到数字,则只能将 StringFormat
与数字格式字符串一起使用。您的 Amount
属性已经是 string
,因此您将按原样获取它。
如果您将 Amount
属性更改为数值,您将得到您所期望的,即:
double _amount;
public double Amount
{
get { return _amount; }
set { _amount = value; }
}
...
public MyWindow()
{
Amount = 1235533;
InitializeComponent();
}
请注意,您可能还想让
Amount
成为 DependencyProperty
或让它实现 INotifyPropertyChanged
。这将允许对值的更改反射(reflect)在用户界面中。关于wpf - StringFormat 不适用于 TextBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17049612/