我有以下的绑定在我的WPF应用程序INotifyPropertyChanged的更新ontextchange
XAML:
<TextBox Text="{Binding Amount, StringFormat=c}" Name="txtAmount" />
C#(代码后面):
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
// needed to create the binding
this.DataContext = this;
}
private decimal _Amount;
public decimal Amount
{
get {
return _Amount;
}
set{
_Amount= value;
OnPropertyChanged("Amount");
}
}
public event PropertyChangedEventHandler PropertyChanged = delegate { };
private void OnPropertyChanged(string propertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
//.....
代码工作正常。在我的代码后面的属性金额会更新,每当我改变txtAmount的价值,也是另一种方式(改变价值的金额在C#将更新txtAmount)
无论如何,如何更新金额,每次我改变控件txtAmount中的文本?我不想等到txtAmount失去焦点,这样Amount才会在代码后面更新。
事情我已经尝试:我txtAmount被格式化为货币
txtAmount.TextChanged += (a, b) =>
{
Amount = decimal.Parse(txtAmount.Text);
};
召回因此如果它具有1的值txtAmount将显示$ 1.00包装我知道,我应该能够取代$为了能够将它转换为十进制数。如果这个应用程序在哪里使用不同的文化,例如es用于西班牙语,那么文本框将显示eruo而不是$,并且我将不得不替换该符号以便能够投射它。
简而言之,每当文本在该控件中发生更改时,能够更新捆绑到我的txtAmount控件的Amount属性的方法,而不是控件失去焦点时?
可能重复http://stackoverflow.com/questions/7178871 /活绑定属性更改换文本框) – 2012-03-12 15:37:41