Я ищу способ предотвратить изменение выбора элементов WPF (сейчас это управление Tab, но в будущем это нужно будет сделать для ListBoxes, ListViews и ComboBoxes).Событие смены выбора в WPF
Я наткнулся на this thread и попытался использовать ту же технику, которая была отмечена как ответ.
В этой технике вы извлекаете CollectionView для элементов управления вкладкой и обрабатываете CollectionView's CurrentChanging event, чтобы предотвратить выбор.
По какой-то причине событие CurrentChanging никогда не запускается в моем коде.
Вот мой очень простой пользовательский элемент управления, с которым я работаю. У него есть вкладка с тремя вкладками.
(XAML)
<UserControl x:Class="UserControlWithTabs"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<TabControl x:Name="MainTabControl">
<TabItem Header="First Tab">Content for the first tab</TabItem>
<TabItem Header="Second Tab">Content for the second tab</TabItem>
<TabItem Header="Third Tab">Content for the third tab</TabItem>
</TabControl>
</UserControl>
В моей VB.NET код для пользовательского элемента управления, я просто извлекая CollectionView для элементов на вкладке управления и с помощью метода AddHandler, чтобы наблюдать за событием.
(VB.NET)
Public Class UserControlWithTabs
Private WithEvents mainTabCollectionView As CollectionView
Private Sub UserControlWithTabs_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
mainTabCollectionView = CollectionViewSource.GetDefaultView(MainTabControl.Items)
AddHandler mainTabCollectionView.CurrentChanging, AddressOf MainTabControl_ItemSelecting
End Sub
Private Sub MainTabControl_ItemSelecting(ByVal sender As Object, ByVal e As System.ComponentModel.CurrentChangingEventArgs)
End Sub
End Class
я ставлю точку останова на методе MainTabControl_ItemSelecting, но он никогда не попал.
Что я делаю неправильно?
Спасибо,
-Frinny
Спасибо так много! – Frinavale