wpf - StringFormat 不适用于 TextBox

标签 wpf textbox currency mask string-formatting

我正在尝试制作一个货币格式的文本框,但它不起作用。

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/

相关文章:

c# - 如何获得特定的文化货币图案

c# - WPF 工具包饼图不显示

wpf - 如何将 WPF 复选框置于其可点击区域的中心?

c# - 在 C# 中开始新行时,如何在 TextBox 中创建新行?

c# - 将文本框格式化为 MM/YYYY

OSGI 中的 Java 货币引用实现

c# - 如何使用 CultureInfo 格式化已弃用的货币?

wpf - 如何在wpf-mvvm应用程序中以法语将电话号码文本显示为Numérodetéléphone

c# - 将 C# 代码组织到不同的文件中

wpf - WPF-当“文本框”无法再接收任何输入时,播放默认的Windows声音