Wpf 调试属性已更改

Wpf 调试属性已更改,wpf,events,propertychanged,Wpf,Events,Propertychanged,我有一个名为ViewModel的类,代码如下: public event PropertyChangedEventHandler PropertyChanged; var copyOfPropertyChangedEvent = PropertyChanged; if (copyOfPropertyChangedEvent != null) { var args = ViewModel.GetPropertyChangedEventArgs(propertyName); co

我有一个名为ViewModel的类,代码如下:

public event PropertyChangedEventHandler PropertyChanged;

var copyOfPropertyChangedEvent = PropertyChanged;

if (copyOfPropertyChangedEvent != null)
{
    var args = ViewModel.GetPropertyChangedEventArgs(propertyName);
    copyOfPropertyChangedEvent(this, args);
}
当我调试它时,我想看看copyOfPropertyChangedEvent事件中发生了什么。当我按下F12键时,它会将我带到行:var copyOfPropertyChangedEvent=PropertyChanged; 当我搜索PropertyChanged的所有用法时,VisualStudio提供了一些用法,当我在所有用法中放置断点时,没有一个被命中


如何查看PropertyChanged事件中发生的情况?

好的,我们将尝试推测:)

首先,我会像R#一样,以下面的方式实现它

现在我确信您知道事件包含要调用的方法列表。框架使用它向GUI发出信号,表示必须对相关属性进行重新评估(绑定、运行转换器等,然后重新绘制),您还可以将自己挂接到它上。如果它是空的,那么可能UI没有连接上-这就是为什么我要求那里有更多信息。正如您所知,这是以下内容的一部分:)

无论如何,如果您只是对它的内部工作方式感到好奇,您可以安装RedGate Reflector,这将允许您进入任何非本机代码。或者,您可以将System.dll分解并跟踪它

希望有帮助

干杯


斯蒂安

您好,您能提供更多的代码和上下文吗?我在那里看到的一点点代码看起来很可疑。回答更多问题只是猜测:)绑定框架基本上使用它来侦听属性更改通知并更新绑定目标。我不是问如何实现OnPropertyChanged事件,而是问如何查看调用copyOfPropertyChangedEvent时执行的方法。调用copyOfPropertyChangedEvent时执行什么代码?
public class YourViewModelBase : INotifyPropertyChanged
{
   public event PropertyChangedEventHandler PropertyChanged;

   [NotifyPropertyChangedInvocator] // remove if no R#
   protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
   {
       PropertyChangedEventHandler handler = PropertyChanged;            
       if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
   }
   // .....
}