如果我在后面的代码中注册UserControl上的事件。 E.g:
public partial class PositionView : UserControl
{
// If required ViewModel can be accessed using DataContext
public PositionViewModel ViewModel
{
get { return (PositionViewModel) this.DataContext; }
}
public PositionView()
{
InitializeComponent();
this.DataContextChanged += new System.Windows.DependencyPropertyChangedEventHandler(PositionView_DataContextChanged);
}
void PositionView_DataContextChanged(object sender, System.Windows.DependencyPropertyChangedEventArgs e)
{
this.ViewModel.UpdateTotalsChanged.Subscribe(_ => this.PositionGridControl.UpdateTotalSummary());
}
}
我什么时候应该处理事件处理程序?没有IDisposable挂钩?
如果我通过xaml绑定到事件,那么在生命周期管理方面这是一个更清晰的解决方案吗?
答案 0 :(得分:2)
Event
以及EventHandler
的来源是本地的。因此,在收集UserControl
时,将收集它们。
当收集UserControl
时,将没有其他对象使您的eventHandler保持活动状态。因此,您无需手动实施终身管理'