Я использую созданный в error
обработчик:
$("img").error(function () {
$(this).unbind("error").attr("src", "broken.gif");
});
Редактирование: error()
метод удерживается от использования в jquery 1.8 и выше. Вместо этого необходимо использовать .on("error")
вместо этого:
$("img").on("error", function () {
$(this).attr("src", "broken.gif");
});
Мы можем сделать это, используя Маршрутизацию событий . RoutedEvents , например Click, всплывает вверх по дереву элементов, пока что-нибудь не обработает событие. Из-за этого вы фактически уже получаете событие Click на элементах вкладки, просто мы пока ничего не делаем с ним. Мы могли бы создать событие для обработки нажатия кнопки на элементах вкладки следующим образом:
<TabItem Content="Item 1 Content" ButtonBase.Click="TabItem_Click">
Однако нам пришлось бы установить это на каждой вкладке, поэтому вместо этого мы можем создать стиль для элементов вкладок в TabControl следующим образом:
<TabControl>
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<EventSetter Event="ButtonBase.Click"
Handler="TabItem_Click" />
</Style>
</TabControl.ItemContainerStyle>
....
</TabControl>
Теперь в нашем обработчике событий мы можем выбрать вкладку, на которой щелкнули:
private void TabItem_Click(object sender, RoutedEventArgs e)
{
Trace.WriteLine("TabItemClicked");
((TabItem)sender).IsSelected = true;
e.Handled = true;
}
Я сейчас занимался RnD над вышеупомянутой проблемой и смог достичь вышеупомянутого другим способом, но все же было бы здорово, если бы вы могли помочь мне в том, что вы выполнили.
В событии selectionchanged listbox я просто изменил выбранный элемент tab control на тот, который мне нужен, т.е.
Tbctrl.SelectedItem = (TabItem)Tbctrl.FindName("item2");
Здесь Tbctrl - имя tabcontrol, а item2 - имя элемента tabcontrol, который содержит текстовые поля, упомянутые выше.
Regards,
Dhaval