Как я могу поймать событие tabitem_previewmousedown
- Привет! Я пытаюсь поймать Табитема.PreviewMouseDown в моем решении WPF, но когда я нажимаю на элемент tab, я даю TabControl в качестве источника. могу ли я дать TabItem на событии TabItem_PreviewMouseDown?
Что я уже пробовал:
Это решение работает хорошо:
<tabcontrol name="MyTabControl" tabitem.previewmousedown="TabItem_PreviewMouseDown"> <tabitem header="Tabitem 0"> <tabitem header="Tabitem 1"> <tabitem header="Tabitem 2"> <tabitem header="Tabitem 3"> <tabitem header="Tabitem 4"> <tabitem header="Tabitem 5">
В главных.язык XAML.файл CS :
private void TabItem_PreviewMouseDown(object sender, MouseEventArgs e) { var tabItem = e.Source as TabItem; // e.Source is TabItem }
Мне нужно установить TabItems с привязкой:
<tabcontrol name="MyTabControl" itemssource="{Binding Path=Tabs}" tabitem.previewmousedown="TabItem_PreviewMouseDown">
в .в CS:
public ObservableCollection<tabitem> Tabs { get; set; } public MainWindow() { InitializeComponent(); Tabs = new ObservableCollection<tabitem>(); for (int i = 0; i < 5; i++) { TabItem mti = new TabItem() { Header = i.ToString() }; Tabs.Add(mti); } DataContext = this; } private void TabItem_PreviewMouseDown(object sender, MouseEventArgs e) { var tabItem = e.Source as TabItem; // e.Source is TabControl!!! }
Как я могу дать TabItem на событии TabItem_PreviewMouseDown?
#realJSOP
Я не вижу, как будет работать приведенный вами пример, который "работает". Я попытался сделать это в приложении, и дизайнер пожаловался на обработчик событий предварительного просмотра .
mcNosferatum
Правильно ли вы используете заглавную букву в XAML? Элемент tabitem.PreviewMouseDown= " TabItem_PreviewMouseDown"
#realJSOP
Конечно, я так и сделал. В любом случае, это не сработает так, как ты пытаешься. Смотрите мое решение.
mcNosferatum
Да, это не работает! Но ваше решение работает хорошо! Спасибо!
#realJSOP
Кстати, если вы собираетесь публиковать фрагменты кода, убедитесь, что код синтаксически корректен. Никто не сможет скопировать/вставить опубликованный вами код без необходимости редактировать его, как только он окажется в IDE. Это боль, и большинство людей не хотят иметь с ней дело. Ваш XAML неверен, так как ни одно из имен элементов не имеет правильного корпуса.