2011-01-25 4 views
1

添付プロパティ(TextBox内のテキストを大文字にするなど)があります。私は、TextBoxのTextChangedイベントを購読して、テキストが更新されるたびにそれを大文字にする必要があります。WPFとイベント配線に付属のプロダクト

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を収集できるようにイベントを送信する必要がありますか?

+0

強参照が他の方法(=> TextBoxからCapitalizeへ)になるので、TextBox自体の収集に問題はありません。 – Jefim

答えて

1

逆の言い方をすると、テキストボックスにはイベントハンドラへの参照が格納されます。したがって、メモリリークの可能性はありません。

+0

説明をありがとう。 – Jefim

関連する問題