TabControl의 탭 이동을 해서 새로운 탭이 열리면 서버로부터 값을 들고 오는 코드인데,

ListView를 클릭했는데도 SelectionChanged 이벤트가 발생되면 ListView가 계속 초기화된다.

 

scrawled-note.tistory.com/entry/WPF-C-TabControl%EC%9D%98-Tab-%EC%84%A0%ED%83%9D-%EC%9D%B4%EB%B2%A4%ED%8A%B8

 

WPF, C# ] TabControl의 Tab 선택 이벤트

Tab Item의 selected 이벤트로 동작할것이라 생각하고 접근했지만, selected 이벤트도 없고, MouseLeftDown 이벤트로 동작할꺼라 또! 생각했지만 틀렸다.... 방법 : TabControl의 SelectionChanged 이벤트를 통해..

scrawled-note.tistory.com

 

하단의 리스트를 클릭했지만...
탭을 클릭했을때 Log가 찍힌다?

 

 

 

 

EventArgs의 Source가 내가 발생신킨 TabControl가 맞는 확인하는 조건문 추가해서 동작시키면 해결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.Source is TabControl)
            {
                Console.WriteLine("인덱스 클릭");
 
                string tabItem = ((sender as TabControl).SelectedItem as TabItem).Header as string;
                Console.WriteLine("tabItem >>" + tabItem);
 
                switch (tabItem)
                {
                    case "일반":
                        setUserInfo();
                        Console.WriteLine("1번 인덱스 클릭");
                        break;
                    case "사용자 관리":
                        // 사용자 리스트 가져옴
                        getUserList();
                        break;
                    case "업무 관리":
                        getWorkList();
                        break;
                        // 업무 리스트 가져옴
 
                }
            }            
        }
cs

 

TabControl 아이템 선택에 따른 정보 갱신을 하다가....

 

Tab Item의 selected 이벤트로 동작할것이라 생각하고 접근했지만, 

selected 이벤트도 없고, MouseLeftDown 이벤트로 동작할꺼라 또! 생각했지만 틀렸다....

 

방법 : 

TabControl의 SelectionChanged 이벤트를 통해 sender를 받고,

받은 sender를 TabControl의 선택된 아이템으로 치환하고 그 머릿말을 가져와

switch case문으로 동작시킨다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Console.WriteLine("인덱스 클릭");
 
            string tabItem = ((sender as TabControl).SelectedItem as TabItem).Header as string;
            Console.WriteLine("tabItem >>" + tabItem);
 
            switch (tabItem)
            {
                case "일반":
                    setUserInfo();
                    Console.WriteLine("1번 인덱스 클릭");
                    break;
            }
        }
cs


원문 답변은 

stackoverflow.com/a/26559651

 

how to handle TabItem single click event in WPF?

In my application I have used WPF TabControl I want to handle click event of the TabItem. How do i achieve it?

stackoverflow.com

 

 

+ Recent posts