Когда выпускать обработчики событий UserControl?
Если я регистрирую события на UserControl в коде позади. Например:
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, будет ли это более чистым решением с точки зрения управления временем жизни?
1 ответ:
Источник
Event, а такжеEventHandlerявляются локальными. Поэтому они будут собраны, когда соберется самоUserControl.Когда
UserControlбудет собран, не будет никакого другого объекта, который поддерживает жизнь вашего eventHandler. Поэтому вам не нужно вручную реализовывать "управление временем жизни".