为什么文本框控件上没有 IsReadOnlyChanged 事件



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

很简单,对吧? 除了没有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
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新