【问题标题】:Raise an event when Property Changed using Reflection使用反射更改属性时引发事件
【发布时间】:2012-06-26 15:12:29
【问题描述】:

我正在使用 C#,并且我有一个对象,我只能使用 Reflection 访问它(出于某些个人原因)。因此,当我需要为其属性之一设置一些值时,我会执行以下操作:

System.Reflection.PropertyInfo property = this.Parent.GetType().GetProperty("SomeProperty");
object someValue = new object(); // Just for example
property.SetValue(this.Parent, someValue, null);

并且,为了获得它的值,我使用了方法GetValue

我的问题是:有没有办法在使用反射改变属性时触发事件?

【问题讨论】:

  • 这个类是否实现了INotifyPropertyChanged?调用 SetValue 应该使用属性设置器。
  • @cadrell0,不,恐怕没有
  • @Dante,您找到解决方案了吗?我试图在 Thread.CurrentThread.CurrentCulture 值发生更改时触发通知事件,这与您的问题相似

标签: c# reflection propertychanged


【解决方案1】:

有没有办法在使用反射改变属性时触发事件?

除非属性设置器本身引发它,否则不会。没有任何东西“监视”所有属性的变化,并在它们发生变化时引发事件。

【讨论】:

  • 感谢您的回复,我想我需要采取另一种方法
【解决方案2】:

您可以在 WPF 应用程序中使用 Inotifychanged.. 当发生与属性相关的某些事件时自动更改属性值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    相关资源
    最近更新 更多