C# PropertyChangedEvent订阅在绑定后的某个时间发生

C# PropertyChangedEvent订阅在绑定后的某个时间发生,c#,wpf,mvvm,data-binding,C#,Wpf,Mvvm,Data Binding,我正在使用我的第一个WPF应用程序,遇到了一个奇怪的行为。我相信以下一系列事件正在发生 在主窗口构造函数中,我创建了ViewModel的一个实例,该实例接口INotifyPropertyChanged并将其设置为数据上下文 在我的ViewModel构造函数中,我创建了依赖io的对象实例,因此大多数对象都是异步的,并使用事件模型。我已经在这些对象中实现了更改事件,并且我的构造函数使用只调用ViewModel的PropertyChanged委托的方法订阅这些事件 我注意到,在应用程序启动时,View

我正在使用我的第一个WPF应用程序,遇到了一个奇怪的行为。我相信以下一系列事件正在发生

在主窗口构造函数中,我创建了ViewModel的一个实例,该实例接口INotifyPropertyChanged并将其设置为数据上下文

在我的ViewModel构造函数中,我创建了依赖io的对象实例,因此大多数对象都是异步的,并使用事件模型。我已经在这些对象中实现了更改事件,并且我的构造函数使用只调用ViewModel的PropertyChanged委托的方法订阅这些事件

我注意到,在应用程序启动时,ViewModel中的对象将触发快速更改事件(在连接快速时发生),当调用PropertyChanged事件委托时,它为null。我检查此条件,以便我的应用程序继续运行,但在对象再次报告更改之前,状态不会更新

绑定对属性的初始读取和对PropertyChanged事件的订阅之间似乎存在延迟


是否对此进行了记录/了解,是否有办法处理

查看一些示例代码有助于诊断问题。在构造函数中,您是在调用InitializeComponent()之前还是之后设置数据上下文?视图模型构造函数中正在初始化什么?您是如何定义属性的?在我看到这种情况的时候,通常归结为未指定
UpdateSourceTrigger=PropertyChanged
,或者UI线程与其他任务(如从数据库中提取数据)绑定。@MDK:我正确地假设您在构造函数中调用异步调用?一个建议是:不要这样做,它会导致各种奇怪的行为,在构造函数中,您不能等待
异步
调用。我猜您的代码在ViewModel完全初始化并分配给视图的
DataContext
之前完成,因此视图尚未订阅
PropertyChanged
事件。在Prism MVVM框架或类似实现中使用导航模式,如
INavigationAware
INavigationService