【问题标题】:Get change events for value bound to TextProperty for a decendant of TextBox为 TextBox 的后代获取绑定到 TextProperty 的值的更改事件
【发布时间】:2026-01-03 19:00:01
【问题描述】:

我有自己的自定义 TextBox 类。它在某种程度上帮助我处理来自条形码阅读器的扫描。

为此,我需要一种方法来捕获绑定到 TextProperty 的值何时发生变化。

注意:我不是在寻找“TextChanged”事件或任何与按键相关的事件(除非该按键更新源)。

我需要一个仅在基础值更改时触发的事件,并且我需要能够在我的 TextBox 中访问它(这意味着它不能在 ViewModel 中)。

这可能吗?

【问题讨论】:

    标签: c# .net wpf binding


    【解决方案1】:

    是的,您可以这样做:

    在你的类的构造函数中:

      var dpd = DependencyPropertyDescriptor.FromProperty(YourTextBoxClass.TextProperty, typeof(YourTextBoxClass));
     if (dpd != null)
     {
         dpd.AddValueChanged(this, ThisIsCalledWhenPropertyIsChanged);
     }    
    

    然后是处理程序:

    private void ThisIsCalledWhenPropertyIsChanged(object sender, EventArgs e) { }
    

    希望对你有帮助,

    问候

    【讨论】:

      最近更新 更多