2013-03-27 2 views
1

WPF 항목 (지금은 Tab 컨트롤이지만, 나중에 ListBox, ListViews 및 ComboBoxes에 대해 수행해야 함)에서 선택 변경을 방지 할 수있는 방법을 찾고 있습니다.WPF에서 이벤트 선택 변경

나는 this thread을 만나고 답변으로 표시된 것과 동일한 기술을 사용하려고 시도했습니다.

이 기술에서는 탭 컨트롤의 항목에 대해 CollectionView을 검색하고 선택을 방지하기 위해 CollectionView's CurrentChanging event을 처리합니다.

어떤 이유로 인해 CurrentChanging 이벤트가 내 코드에서 실행되지 않습니다.

다음은 내가 작업하고있는 매우 간단한 사용자 정의 컨트롤입니다. 3 개의 탭이있는 탭 컨트롤이 있습니다.

(XAML) 사용자 제어를위한 내 VB.NET 코드에서

<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> 

, 나는 단순히 탭 컨트롤의 항목에 대한 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

답변

1

당신이 당신의 TabControlIsSynchronizedWithCurrentItem="True"을 추가하는 시도 했습니까?

+0

정말 고마워요! – Frinavale

0

Q & A 덕분에 저는 C#에서이 작업을 수행 할 수있었습니다. C# 코드 숨김으로 이와 같은 것을 필요로하는 사람은 다음과 같습니다.