我正在尝试制作货币格式化的文本框,但它无效。
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
答案 0 :(得分:6)
如果您绑定了某个数字,则只能将StringFormat
与数字格式字符串一起使用。您的Amount
媒体资源已经是string
,因此您可以按原样获取。
如果您将Amount
属性更改为数值,您将获得预期的结果,即:
double _amount;
public double Amount
{
get { return _amount; }
set { _amount = value; }
}
...
public MyWindow()
{
Amount = 1235533;
InitializeComponent();
}
请注意,您可能还希望将Amount
设为DependencyProperty
或让其实施INotifyPropertyChanged
。这将允许更改值以反映在用户界面中。
答案 1 :(得分:0)
internal class MyClass
{
private double amount = 1209382;
public string Amount
{
get { return string.Format("{0:C}", amount); }
}
}
internal class Program
{
private static void Main(string[] args)
{
MyClass instance = new MyClass();
Console.WriteLine(instance.Amount);
Console.ReadKey();
}
}