Событие SelectionChanged для TabItems

1

Я в ситуации, когда я пытаюсь создать уведомление, когда я пытаюсь перейти от одного TabItem к другому, и я пытаюсь сделать это с помощью функции LostFocus().

На самом деле мой каждый TabItem состоит из TextBlock и некоторых данных, написанных на нем. Поэтому уведомление о переключении я пытаюсь добиться следующим образом:

    StackPanel sp = new StackPanel() 
    { 
       Orientation = Orientation.Horizontal
    };
    sp.Children.Add(generateTextBlockContaini()); 
    TabItem tbi = new TabItem();
    tbi.Header = sp;
    tbi.LostFocus +=(o,e) =>
     {

         //MesssagePop up 
         MessageBox.Show("Hurrey tabItem changed");
     }; 

Возникает проблема:

(1) Он отлично работает, но мне нужно щелкнуть один раз на текстовом блоке, когда я переключусь на другой TabItem, чтобы всплывать это сообщение (потому что его фокус не установлен, если я не нажимаю). Есть ли способ установить фокус текстового блока в silverlight 5?

(2) Даже если он установлен, он будет звонить бесконечно, потому что я заменил текстовый блок на текстовое поле, и я использовал Focus(), и он вызывал бесконечно.

Теги:
silverlight
silverlight-5.0
silverlight-4.0

2 ответа

0

Для вашего конкретного случая вы можете использовать события MouseLeave и MouseEnter вместо LostFocus и GotFocus. Эти события будут срабатывать, не требуя от пользователя щелчка на элементе управления внутри вашего TabItem.

0

Обычно TabItems используются вместе с TabControls. Это обеспечивает свойства и события для изменения вкладок.

Событие tablanged Silverlight - tabcontrol

Ещё вопросы

Сообщество Overcoder
Наверх
Меню