This question is locked. New answers and comments are not allowed.
I've noticed that the RadScheduleView control will leak taking the parent tree and all its appointments with it if the ShowCurrentTimeIndicator property is set to true when the control is unloaded. The control seems to leave the dispatch timer that is setting the current time indicator timing.
If I set this property to False during the OnClosed event of the RadWindow that is hosting the RadScheduleView then the Time Indicator timer is stopped and then control is cleaned up on GC.
See the code below from ScheduleViewBase where stop isn't called unless this property is set back to false.
private static void OnShowCurrentTimePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
ScheduleViewBase view = d as ScheduleViewBase;
if (!(bool)e.NewValue)
{
view.timer.Stop();
}
else
{
view.timer.Start();
}
if (view.TimeRulerPanel != null)
{
view.TimeRulerPanel.InvalidateMeasure();
}
}
If I set this property to False during the OnClosed event of the RadWindow that is hosting the RadScheduleView then the Time Indicator timer is stopped and then control is cleaned up on GC.
See the code below from ScheduleViewBase where stop isn't called unless this property is set back to false.
private static void OnShowCurrentTimePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
ScheduleViewBase view = d as ScheduleViewBase;
if (!(bool)e.NewValue)
{
view.timer.Stop();
}
else
{
view.timer.Start();
}
if (view.TimeRulerPanel != null)
{
view.TimeRulerPanel.InvalidateMeasure();
}
}