Привязанное свойство ViewModel не обновляется при нажатии кнопки "Очистить все" в TextBox

У меня есть приложение WinRT (с таргетингом на 8.1+), и на одной из моих страниц у меня есть несколько TextBox. В этих текстовых полях у меня есть обработчики для GotFocus, LostFocus, KeyUp, KeyDown и TextChanged, которые выполняют различные функции, включая вызов другого метода, который рисует график на основе значений в текстовых полях.

Все это прекрасно работает, когда пользователь печатает в TextBoxes, однако есть кнопка "Очистить все", которая выглядит как жирный "X" на правой стороне TextBox. Это хорошая особенность; щелчок по нему очищает значение TextBox.

Однако при нажатии этой кнопки привязка TwoWay значения к свойству в ViewModel не обновляется, как это происходит при вводе пользователем в TextBox. Есть ли способ заставить привязанное значение обновить? Свойства ViewModel управляют графиком, поэтому, когда они не обновляются, график не обновляется должным образом.

Вот XAML для одного из текстовых полей:

    <TextBox 
        x:Name="y"  
        Text="{Binding YString,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
        Grid.Row="0" 
        Grid.Column="1" 
        Style="{StaticResource StatisticalPoint}"
        InputScope="CurrencyAmountAndSymbol"
        KeyDown="StatisticalValue_KeyDown"
        KeyUp="StatisticalValue_KeyUp"
        GotFocus="TextBox_GotFocus"
        LostFocus="TextBox_LostFocus"
        TextChanged="TextBox_TextChanged"
    />

Вот реализация TextBox_TextChanged:

    protected void TextBox_TextChanged( object sender, TextChangedEventArgs e )
    {
        if( sender is TextBox && ( (TextBox)sender ).Text.Length == 0 )
        {
            Debug.WriteLine("Value_Changed -- sender: {0}, e: {1}", sender, e);
            this.UpdateGraph();
        }
    }

Обновление. Интересно, что эта проблема возникает только при первом нажатии кнопки "Очистить все". Если вы нажмете кнопку, затем введите значение, график обновится при вводе значения, а затем, если вы нажмете кнопку еще раз, график обновится правильно с тех пор.

0 ответов

Другие вопросы по тегам