NotifyOfPropertyChange使用Caliburn.Micro,NotifyPropertyChange(从基类PropertyChangedBase的),因此Caliburn.Micro在VB
NotifyOfPropertyChange(() => MyPropertyName)
证明在哪里MyPropertyName是,从逻辑上讲,某种形式的财产。我不清楚这是如何工作的,但我猜想,因为返回属性的匿名函数是作为参数给出的,所以CM可以做一些反射魔术来找到实际的属性名称。比将“MyPropertyName”作为字符串传递更方便,因为这是错字倾向。
我的问题是,我如何在VB.Net中使用它?直译是
NotifyOfPropertyChange(Function() MyPropertyName)
但是,这给了我
Cannot convert lambda expression to type 'string' because it is not a delegate type.
出现在C#中类似的错误时MyPropertyName实际上不是一个属性,但似乎总是出现在VB。
这可以在VB中完成吗?