Wpf очистить отключен TextBox.Text при возникновении ошибки проверки. - PullRequest
0 голосов
/ 30 августа 2018

У меня есть три текстовых поля с текстом, связанным с тремя свойствами. Мне нужно отключить два текстовых поля, когда я набираю третий. И я должен очистить значение отключенных текстовых полей.

`

 <TextBox Text="{Binding TextProperty1}"  IsEnabled="{Binding T1Enabled}"/>
 <TextBox Text="{Binding TextProperty2}"  IsEnabled="{Binding T2Enabled}"/>
 <TextBox Text="{Binding TextProperty3}"  IsEnabled="{Binding T3Enabled}"/>

`

T1-3Enabled - это свойство, содержащее только геттеры, и я поднимаю свойство изменилось в команде потерянного фокуса текстовых полей. Когда эти свойства обновились, я очищаю связанные свойства отключенных текстовых полей (TextProperty1-3).

Но если в некоторых отключенных текстовых полях есть ошибки проверки, свойство источника очищается, а textbox.text - нет.

Как я могу решить это в mvvm? Я не хочу устанавливать textbox.text.

Надеюсь, проблема ясна. Спасибо за любую помощь или другое решение.

1 Ответ

0 голосов
/ 31 августа 2018

Я решил проблему с производным классом текстового поля.

public class MyTextBox : TextBox
{
    public MyTextBox()
    {
        IsEnabledChanged += MyTextBox_IsEnabledChanged;
    }

    private void MyTextBox_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        if(e.NewValue is bool)
            if (!(bool)e.NewValue)
                Text = string.Empty;
    }
}
...