1

UserControl を拡張するクラスを取得しました

その中にいくつかのタブがあり、タブがいつ選択されたかを認識したいので、これを持っています:

     this.GotFocus += new RoutedEventHandler(OnGotFocus);

     private void OnGotFocus(object sender, System.EventArgs e)
            {
                if (DataContext != null)
                {
                    ((SomeViewModelClass)DataContext).SetActiveTab();
                }
            }

したがって、私の問題は、最初にタブを選択すると OnGotFocus メソッドが呼び出されますが、他のタブを選択して戻ってきてもう一度選択すると、何らかの理由で呼び出されません。理由を知っていますか?

前もって感謝します!

4

1 に答える 1

0

WPF のタブ コントロール権限を使用していますか?

なぜあなたはやっているのthis.GotFocus....ですか?thisこの場合、正確には何ですか?

aが選択さGetFocusれたときに呼び出されるようにするには、次のようにする必要があります。Tab

XAML (サンプル タブ)

  <TabControl>
            <TabItem x:Name="table1"></TabItem>
            <TabItem x:Name="table2"></TabItem>
            <TabItem></TabItem>
        </TabControl>

コードビハインド

//register event for each individual tab

table1.GotFocus += new RoutedEventHandler(table1_GotFocus);
table2.GotFocus += new RoutedEventHandler(table2_GotFocus);

private void table1_GotFocus(object sender, RoutedEventArgs e)
{
}

private void table2_GotFocus(object sender, RoutedEventArgs e)
{

}

要件を誤解した場合はお知らせください

于 2011-05-17T16:06:24.020 に答える