C#에 대해 전반적인 내용은 얼추 알고 있고, 자바와 비슷한 면이 많다고 생각해서 바로 WPF 공부에 들어갔다. '이것이 C#이다 3판'을 읽어봤는데, 대리자, 리플렉션, 어트리부트 등이 C++의 함수 포인터, 자바의 리플렉션과 어노테이션 등등과 비슷한 개념이 많아서 금방 익힐 수 있었다.
WPF는 마이크로소프트에서 제공하는 WPF 자습서를 통해 공부했다. 필요한 정보가 많이 흩어져 있는 느낌이 들었는데, 예시 리포지토리를 훑어보고, 비슷하게 개발이 가능한 MAUI 3 등의 자습서 등을 확인해보면서 전반적인 내용을 익힐 수 있었다. 관련 책도 많이 없거나 절판되어서 예시 리포지토리와 MAUI 3 자습가 큰 도움이 되었다. 자습서는 되도록이면 원문으로 읽으려고 하고 있고, 번역이 필요할 경우 번역본과 원문을 같이 보면서 읽고 있다.
WPF를 공부하면서 JSP, 리액트 등이 생각이 났다. XML을 통해 화면을 구성하고, 로직을 C#으로 작성하는 방식이 JSP를 떠올리게 했고, XML에서 그리드 등을 통해 화면이 어떻게 보일지 구성하고 태그를 통해 바인딩을 설정하고 어느 위치에 존재해야 하는지 등을 설정하는 방식이 리액트를 떠올리게 했다.
InitializeComponent라던지, Page, Window 같은 바탕 클래스들이 어떤 식으로 작동하는지 등을 알 수 없었다는 점은 아쉬웠지만, 전반적인 작동방식과 활용방법을 터득할 수 있었다.
MVVM 패턴에 대해 이번에 숙지할 수 있었다. 또한 뷰모델 측에서 INotifyPropertyChanged 인터페이스를 구현하고, 데이터 변경이 일어날 경우 반드시 이벤트를 실행하여 윈도우에게 데이터 변경이 있음을 알려주어야 함을 알게 되었다. 커맨드 패턴을 통해 뷰 측에서 뷰모델 방향으로 명령을 전달해주는 방식도 있는 것 같아서 관련 내용을 찾아보고 있다.
데이터컨텍스트를 설정했을 때 프리뷰 화면에서 데이터가 보이지 않아서 당황했었는데, 실행하면 제대로 보였다. 이것도 미리 확인하는 방법을 찾아보거나, 목업 데이터 등을 설정해봐야 할 것 같다.
WPF 테스트를 작성하는 방법을 찾아보고 있다.
'C# > WPF' 카테고리의 다른 글
| XML 상에서 객체 생성하기 (0) | 2025.12.16 |
|---|---|
| MvvmToolkit (0) | 2025.12.16 |
| WPF Today I Learn (0) | 2025.12.11 |