본문 바로가기

XAML과 C# (Code Behind) 연동 작업 2

 

용어: 이벤트 헨들러 = 이벤트를 다룹니다. 이벤트가 발생했을때 처리하는 로직을 의미합니다. 이벤트가 아닙니다.

이벤트 핸들러는, 이벤트에 연동될 이벤트가 발생되면, 그 동작 신호를 받아 처리는 부분입니다.

 

XMAL 컨트롤에서 발생한 이벤트가 Code Behind(C# 소스 코드)에서 구현되도록 MainWindows.xaml.cs정의해 봅시다.

 

 

Calculator.zip
0.25MB

 

 

 

1. Calculator 예제를 다운받아 실행합니다. 

실행된 프로그램에서 레이블에 0이 출력됨을 확인합니다.

 

 

 

 

 

 

2. XAML 파일의 버튼 중 "7"을 입력하는 버튼을 찾습니다.

버튼의 태그에 Click 이벤트(⚡)를 추가해봅시다.

Click은 버튼 XAML 태그의 속성이 아닌 C# 이벤트입니다.

 

 

 

 

 

3. Click = " " 이벤트 코드가 입력되면,

4. 자동으로 이벤트 헨들러를 추가할 것을 묻는 자동완성이 보입니다.

5. 엔터를 누르면, 이벤트 핸들러 로직이 Code Behind(C# 소스 코드)에 자동으로 추가됩니다.

 

 

 

 

 

6. MainWindows.xaml.cs  파일로 이동해 자동 완성된 이벤트 핸들러를 확인합니다.

7. 이벤트 헨들러가 자동으로 구현되어 있음을 확인할 수 있습니다.

이벤트 헨들러는 이벤트가 발생했을때 처리하는 로직을 의미합니다. 이벤트가 아닙니다.

 

 

 

 

 

8. 이벤트 헨들러는 이벤트가 발생하면 이벤트 발생 신호를 전달받아 실행하는 부분입니다.

이벤트 발생 → 이벤트 핸들러

이벤트 헨들러는 "버튼 클릭 이벤트"가 발생하면 그 신호를 전달받아 실행될 로직을 구현하는 부분입니다.

 

계산기에서 7이 입력되는 것과 동일한 로직을 구현합니다.

1) 기존에 계산기에 0이 입력되어 있다면 7 버튼을 누를때 숫자 0이 7로 변경되고,

2) 기존에 계산기에 0 이외의 다른 값이 존재했다면 7이라는 한자리 십진수를 뒤에 추가하는 형태로 구현합니다.

 

            if(resultLabel.Content.ToString() == "0")
            {
                resultLabel.Content = "7";
            }
            else
            {
                resultLabel.Content = $"{resultLabel.Content}7";
            }

 

 

 

 

9. 프로그램을 실행하여 확인합니다.

이전 포스트에서 작업한 Calculator 프로젝트는 생성자에서 resultLabel의 Contents 속성값으로 12345가 입력되도록 작업했었습니다.

10. 숫자 7 버튼을 클릭하면, 0이 아닌 숫자가 입력되어 있기 때문에

11. 아래 결과 12345 뒤에 7 한자리가 추가된 결과를 레이블에 보여줍니다.

 

 

 

조금더 살펴봅시다.

  1. 솔루션 탐색기의 모든 파일 보기 버튼을 클릭하면, 프로젝트에 포함된 모든 파일이 보입니다.
  2. 자동완성된 파일 중 obj > Debug > MainWindows.i.g.cs 파일을 확인해봅시다.
  3. MainWindows.xaml.cs 의 partial class 입니다.
    파일 내부에 XAML에서 작업했던 UI 컨트롤에 해당하는 C# 소스 코드가 자동 완성되어 있음을 확인 할 수 있습니다.
    sevenButton.Click 이벤트에  MainWindows의 sevenButton_Click 이벤트 헨들러가 자동 등록되어 있음을 확인할 수 있습니다.

BasicLike

어? 나 프로그래밍 좋아하네?