Wpf 为什么TextBox控件上没有IsReadOnlyChanged事件?

Wpf 为什么TextBox控件上没有IsReadOnlyChanged事件?,wpf,textbox,event-handling,spell-checking,readonly,Wpf,Textbox,Event Handling,Spell Checking,Readonly,我添加了一些解决方案代码来修复中概述的错误,当WPF文本框更改为启用、可见或只读状态时,任何拼写检查自定义词典都会被删除,直到禁用并重新启用拼写检查,最简单的修复似乎是处理IsVisibleChanged、IsEnabledChanged和IsReadOnlyChanged事件 很简单,对吧?除非没有IsReadOnlyChanged事件。有人知道为什么以及在WPF文本框中捕获对IsReadOnly的更改的最佳方法是什么吗 您始终可以使用 您始终可以通过以下方式跟踪依赖项属性的更改: 创建自定义

我添加了一些解决方案代码来修复中概述的错误,当WPF文本框更改为启用、可见或只读状态时,任何拼写检查自定义词典都会被删除,直到禁用并重新启用拼写检查,最简单的修复似乎是处理IsVisibleChanged、IsEnabledChanged和IsReadOnlyChanged事件


很简单,对吧?除非没有IsReadOnlyChanged事件。有人知道为什么以及在WPF文本框中捕获对IsReadOnly的更改的最佳方法是什么吗

您始终可以使用


您始终可以通过以下方式跟踪依赖项属性的更改:


创建自定义类并处理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
        }
    }
}

创建自定义类并处理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
        }
    }
}

+1,但为OP的具体问题添加一个示例将大大增强您的答案。酷。我想一定有办法处理这件事。谢谢+1,但为OP的具体问题添加一个示例将大大增强您的答案。酷。我想一定有办法处理这件事。谢谢