본문 바로가기

XAML 과 Code Behind(C# 소스 코드) 연동하기

 

C# WPF 의 UI는 XMAL 파일과 C# 파일이 한쌍을 이룹니다.

 

XAML에서 대부분의 UI 작업이 가능합니다.

하지만, 비즈니스 로직 구현은 Code Behind(C# 소스 코드)에서 구현해야 합니다.

 

우선 이 작업을 위해서는,  XAML 디자이너에서 정의한 UI 컨트롤을 Code Behind(C# 소스 코드)에서 호출하고 식별 할 수 있어야 합니다.

 

XAML UI 컨트롤과 C# 소스 코드 연동

 

Calculator 프로젝트의 Label 컨트롤에 표시되는 Contents 속성을 XAML이 아닌,  Code Behind(C# 소스 코드)에서 변경하는 작업을 진행합니다. 

 

 

Calculator.zip
0.25MB

 

 

 

1. Calculator 예제를 다운받아 실행합니다.
실행된 계산기 프로그램에서  숫자 0이 출력됨을 확인할 수 있습니다.

숫자0을 XAML Label 컨트롤을 사용해 서 출력하고 있습니다 

 

 

 

더보기

XAML 파일의 태그 최상단에 Class로 Calculator 네임스페이스의 Mainwindow 클래스가 정의된 것을 확인할 수 있습니다.

 

 

조금더 살펴봅시다.

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

 

 

4. 상단의 주석에는 MainWindows.g.i.cs 파일이 자동 구현되었으며, 수정하지 말것을 알려주고 있습니다.

5. 네임스페이스는 프로젝트 Calculator 입니다. 

 

 

 

 

2. MainWindow.xaml의 XAML 파일에 레이블은 유일하게 1개가 존재합니다.

레이블 태그를 찾아, 해당 레이블을 식별할 수 있는 x:Name 속성을 추가하여

숫자 0을 출력하는 레이블을 식별하도록 이름을 정의합니다.

x:Name="resultLabel"

 

 

 

 

 

3. MainWindows.xaml.cs (Code Behind) 파일로 이동합니다.

Calculator 프로젝트의 XAML에 정의된 UI 컨트롤을, Code Behind(C# 소스코드)에서 참조할 수 있습니다.

 

 

 

 

 

 

4. XAML에 정의된 레이블 컨트롤의 콘텐츠 속성을 Code Behind(C# 소스 코드)에서 수정 작업합니다.

이 작업은 XAML 디자이너의 XAML 태그에서 Content 속성을 추가하는 것과 동일한 결과를 만들어 냅니다.

 

@ XAML 태그 작업

<Label Content = "12345" />

 

@ Code Behind(C# 소스 코드)에서 수정 작업

resultLabel.Content = "12345";

 

 

 

 

5. 프로젝트를 실행하여 결과를 확인합니다.

Calculator 프로젝트의 MainWindow 클래스의 생성자에서 레이블 컨트롤의 Content 속성 변경을 구현했기 때문에 MainWindow Class가 실행될 때, 생성자 내부의 명령문이 실행되어

resultLabel.Contents  = "12345";

XAML에 정의된 resultLabel의 Contents 속성 값이 구현됩니다.

 

 

 

 

 

6. 위와 같이, 모든 XAML UI 컨트롤은, x:Name 속성의 이름을 정의하면, C# 코드 비하인드에서 참조하여 비즈니스 로직을 구현할 수 있습니다.

 

레이블 이외에 다른 컨트롤을 C# 소스 코드에서 참조하여 로직을 구현해봅니다.

BasicLike

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