首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当存在验证错误时,Wpf清除禁用的TextBox.Text。

当存在验证错误时,Wpf清除禁用的TextBox.Text。
EN

Stack Overflow用户
提问于 2018-08-30 12:42:43
回答 1查看 514关注 0票数 0

我有三个文本框,文本绑定到三个属性。当我输入第三个文本框时,我需要禁用两个文本框。我必须清除禁用文本框的值。

`

代码语言:javascript
复制
 <TextBox Text="{Binding TextProperty1}"  IsEnabled="{Binding T1Enabled}"/>
 <TextBox Text="{Binding TextProperty2}"  IsEnabled="{Binding T2Enabled}"/>
 <TextBox Text="{Binding TextProperty3}"  IsEnabled="{Binding T3Enabled}"/>

`

T1-3 3Enabled是一个只有getter的属性,我在文本框的“丢失焦点”命令中引发属性更改。当这些属性刷新时,我将清除禁用文本框(TextProperty1-3)的绑定属性。

但是,当某些禁用的文本框出现验证错误时,源属性将被清除,但textbox.text未被清除。

如何在mvvm中解决这个问题?我不想设置textbox.text。

我希望问题是清楚的。感谢您的帮助或其他解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-31 10:51:36

我用派生的textbox类解决了这个问题。

代码语言:javascript
复制
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;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52097395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档