Привязка данных не постоянно обновляется в TextBoxC#

Место общения программистов C#
Ответить
Anonymous
 Привязка данных не постоянно обновляется в TextBox

Сообщение Anonymous »

У меня есть форма, содержащая два текстовых поля: MultiStageCountValue, обозначающее количество выбираемых объектов, и MultistagePercentageValue, обозначающее процент выбираемых объектов.
Изображение

Если пользователь вводит номер функций, код программной части рассчитает процент функций, обновив текстовое поле MultistagePercentageValue. Если пользователь вводит значение для процента функций, код программной части обновит значение для текстового поля MultiStageCountValue. Он также пересчитывает фактический процент, поскольку позволяет вводить в любое поле только целые числа (например, 33% из 76 объектов — это 25 объектов, что на самом деле составляет 32,89% объектов).
Это код для каждого текстового поля в файле xaml. Значение из текстового поля MultiStageCountValue используется для запроса в коде ViewModel с использованием переменной привязки MultistageCount. Один и тот же код для события TextChanged используется для обоих текстовых полей, который выполняет некоторую проверку и обновляет текстовое поле MultistagePercentageValue при изменении значения текстового поля MultiStageCountValue.

Код: Выделить всё

private void MultistageCountValue_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox textbox = sender as TextBox;
if (textbox.Name == "MultistageCountValue")
{
MultistagePercentageValue.Text = ((double)int.Parse(textbox.Text) / NumberofFeatures * 100).ToString("F");
}
// other validation code
}
Это код, который используется, когда текстовое поле MultistagePercentageValue теряет фокус, поэтому текстовое поле MultiStageCountValue обновляется только тогда, когда пользователь заканчивает вводить проценты.

Код: Выделить всё

private void MultistagePercentageValue_LostFocus(object sender, RoutedEventArgs e)
{
TextBox textbox = sender as TextBox;
MultistageCountValue.Text = (float.Parse(textbox.Text) / 100 * NumberofFeatures).ToString("F0");
}
В моем тестировании значение MultistageCount обновляется правильно, если я ввожу текстовое поле MultiStageCountValue или когда я вводю текстовое поле MultistagePercentageValue и затем щелкаю в текстовом поле MultiStageCountValue.
/>Однако, если я введу текстовое поле MultistagePercentageValue и выйду из него, в то время как текстовое поле MultiStageCountValue получит обновлено, значение MultistageCount не обновляется, и в запросе используется предыдущее значение.
Почему MultistageCount не обновляется, когда фокус теряется при переходе из текстового поля вместо щелчка за его пределами ?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -a-textbox
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»