wpf - 出现验证错误时,Wpf clear disabled TextBox.Text
问题描述
我有三个文本框,其中的文本绑定到三个属性。当我输入第三个文本框时,我需要禁用两个文本框。我必须清除禁用文本框的值。
`
<TextBox Text="{Binding TextProperty1}" IsEnabled="{Binding T1Enabled}"/>
<TextBox Text="{Binding TextProperty2}" IsEnabled="{Binding T2Enabled}"/>
<TextBox Text="{Binding TextProperty3}" IsEnabled="{Binding T3Enabled}"/>
`
T1-3Enabled 是一个只有 getter 的属性,我在文本框的失去焦点命令上提出了 propertychanged。当这些属性刷新时,我清除禁用文本框(TextProperty1-3)的绑定属性。
但是,当某些禁用的文本框出现验证错误时,会清除源属性,但不会清除 textbox.text。
我如何在 mvvm 中解决这个问题?我不想设置 textbox.text。
我希望问题很清楚。感谢您提供任何帮助或其他解决方案。
解决方案
我用派生的文本框类解决了这个问题。
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;
}
}
推荐阅读
- python - 为什么一个类的相等属性一遍又一遍地调用自己?
- java - IntelliJ Idea 上的远程 Apache Tomcat 配置
- javascript - 减少代码 - 附加 svg 图像的重复代码
- java - 我不知道如何在我的自定义对话框中获取我的 EditText 的值
- apache-kafka - 获取 Kafka 使用详情
- javascript - 在 Facebook 中共享 localhost 页面时出现此页面不可用错误
- java - 重写一个以更简洁的方式抛出异常的 if 语句
- arrays - 更新过滤值数组 VBA Excel
- apache-nifi - 为什么 NiFi HandleHttpRespose 进程任务计数非常高?
- json - -- swift:异步 + JSON + 完成 + DispatchGroup