我正在添加一些解决方法代码来修复DotNet 4 WPF拼写检查中的错误吗?中概述的错误,(当WPF文本框更改Enabled,
Visible
或ReadOnly
状态时,任何拼写检查自定义词典都会被丢弃,直到您禁用并重新启用拼写检查),最简单的修复似乎是处理IsVisibleChanged
, IsEnabledChanged
和IsReadOnlyChanged
事件。
很简单,对吧? 除了没有IsReadOnlyChanged
事件。 有人知道为什么以及在 WPF 文本框中捕获对IsReadOnly
的更改的最佳方法是什么?
您始终可以使用 DependencyPropertyDescriptor.AddValueChanged 来跟踪依赖项属性更改
DependencyPropertyDescriptor.FromProperty(TextBoxBase.IsReadOnlyProperty)
.AddValueChanged(ctrl, OnReadOnlyChanged)
创建自定义类并处理 OnPropertyChanged 事件。像这样:
public class MyTextBox: TextBox
{
public MyTextBox() { }
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
if (e.Property.ToString() == "IsReadOnly")
{
// here you are sure that ContentPropertyhas changed
}
}
}