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