У меня есть следующая привязка в моем приложении wpf
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));
}
//.....
этот код работает нормально. Свойство Amount в моем коде будет обновляться всякий раз, когда я изменяю значение txtAmount, а также наоборот (изменение значения Amount в C # приведет к обновлению txtAmount)
В любом случае, как я могу обновлять сумму каждый раз, когда меняю текст в элементе управления txtAmount? Я не хочу ждать, пока txtAmount не потеряет фокус, чтобы Amount get обновился в коде позади.
Вещи, которые я пробовал:
txtAmount.TextChanged += (a, b) =>
{
Amount = decimal.Parse(txtAmount.Text);
};
* 1020. Если в этом приложении, где используется другая культура, скажем, например, es для испанского, в текстовом поле вместо $ будет отображаться eruo, и мне придется заменить этот символ, чтобы иметь возможность его разыграть.
Итак, есть ли возможность обновлять свойство Amount, связанное с моим элементом управления txtAmount, каждый раз, когда текст изменяется в этом элементе управления, а не когда элемент управления теряет фокус?