【问题标题】:Having a method react to PropertyChanged in a DLL让方法对 DLL 中的 PropertyChanged 做出反应
【发布时间】:2014-12-31 03:41:32
【问题描述】:

我有一个带有实现 INotifyPropertyChanged 的​​类的 DLL。 它有一个字符串属性谁是设置触发器 PropertyChanged。 此字符串在 DLL“内”被异步修改。 我可以但不希望修改 DLL 的行为,因为我想让它尽可能通用和可重用。 如果我将视图中的字段绑定到属性,它会更新得很好。 在我的 Visual Studio 解决方案中,我希望尽可能将其保持为 MVVM,而不是使用任何轮询循环或计时器。

我要添加到解决方案中的是一种方法,该方法与字段一样,只要更新此属性就会触发。这是否可能并且仍然保持在 MVVM 模式中?

【问题讨论】:

  • 您可能只是手动将处理程序方法附加到 PropertyChanged 事件。

标签: c# wpf dll mvvm properties


【解决方案1】:

INotifyPropertyChanged 是一个强制实现PropertyChanged 事件的接口。你可以简单地订阅这个事件来调用一个方法:

MyClass myClass = new MyClass();
myClass.PropertyChanged += myClass_PropertyChanged;

...

public void myClass_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "MyProperty")
        DoWork();
}

public void DoWork()
{
    //Your functionality.
}

【讨论】:

  • 这是一种显式方式来完成“绑定”隐式所做的事情吗?
  • 这是一个非常简化的表示,是的,我相信。
  • 如果你的意思是他们都使用PropertyChanged 事件。您可能会发现以下文章很有趣:MSDN & Scott Logic
猜你喜欢
  • 1970-01-01
  • 2020-12-07
  • 2021-05-12
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多