У меня есть прикрепленное свойство (например, его заглавная буква текста внутри TextBox). Я должен подписаться на событие TextChanged TextBox, чтобы использовать его каждый раз при обновлении текста.
public class Capitalize
{
// this is for enabling/disabling capitalization
public static readonly DependencyProperty EnabledProperty;
private static void OnEnabledChanged(
DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
var tb = d as TextBox;
if ((bool)e.NewValue)
{
tb.TextChanged += new TextChangedEventHandler(tb_TextChanged);
}
else
{
tb.TextChanged -= new TextChangedEventHandler(tb_TextChanged);
}
}
}
Как мы видим, мы добавляем обработчики событий в TextBox, который (если я правильно понимаю) создает сильную ссылку. Означает ли это также, что из-за этой сильной ссылки GC не может собирать TextBox? Если да - в какой момент я должен подключить событие, чтобы можно было собрать TextBox?