我们假设以下情况:
对于此示例,您有一个UserControl
带有DependencyProperty,我称之为ID
。
ID
,则用户控件会注册一些IObservable
,并会在IObservable
更改时收到通知。ID
,则用户控件会从第一个IObservable
取消注册,并使用第二个IObservable
进行注册。ID
被重置(即设置为null
),则用户控制取消注册而不重新注册。现在假设您打开一个包含此用户控件的Window。然后,您将ID
设置为非null
。现在你关闭窗口。
主要问题:关闭窗口时自动将ID
重置为null
(从而分离子用户控件)?如果是的话,WPF的哪个部分对此负责? (是否会重置用户控件的DataContext
,这会导致ID
重置为其默认值吗?)
提出此问题的原因:如果无法保证ID
将自动重置为null
,我必须找到一种方法来检测用户控件的分离并从当前取消注册注册IObservable
“手动”。