0

テキスト ボックスを持つ Silverlight に Page があります。テキスト ボックスで GotFocus イベントを処理する必要がありますが、問題は、この特定のイベントがすべてのオブジェクト グラフに広がることです。そのため、他のオブジェクトが GotFocus イベントをスローすると、テキスト ボックスの GotFocusハンドラーも上げたい

4

1 に答える 1

1

GotFocus はルーティング イベントです。これは、何かが処理済みとしてマークされるまで、ビジュアル ツリーを上に向かって動作することを意味します。

イベントタイプから期待されることを説明しています。

イベントが「バブルアップ」し続けることによる望ましくない副作用がある場合。イベントを処理済みとしてマークして停止することができます。

イベントの OriginalSource プロパティをチェックして、イベントが TextBox から発生したかどうかを確認することもできます。

void OnGotFocus(object sender, RoutedEventArgs e)
{ 
    var myTextBox = e.OriginalSource as TextBox;
    if(myTextBox != null && myTextBox.Name == "MyTextBoxName")
    {
        e.Handled = true;
    }
}
于 2013-01-30T18:54:13.073 に答える