1

我正在添加一些解决方法代码来修复 这是 DotNet 4 WPF 拼写检查中的错误吗?, (当 WPF 文本框更改Enabled, VisibleReadOnly状态时,任何 SpellCheck 自定义词典都会被丢弃,直到您禁用并重新启用 SpellCheck),最简单的修复似乎是处理IsVisibleChangedIsEnabledChangedIsReadOnlyChanged事件。

很简单,对吧?除了没有事件IsReadOnlyChangedIsReadOnly任何人都知道为什么以及在 WPF TextBox 中 捕获更改的最佳方法是什么?

4

2 回答 2

7

您始终可以使用DependencyPropertyDescriptor.AddValueChanged跟踪依赖项属性更改

DependencyPropertyDescriptor.FromProperty(TextBoxBase.IsReadOnlyProperty)
                            .AddValueChanged(ctrl, OnReadOnlyChanged)
于 2012-11-28T14:16:50.360 回答
0

创建一个自定义类并处理 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
        }
    }
}
于 2012-11-28T16:33:26.367 回答