본문 바로가기

C#/WPF4

XML 상에서 객체 생성하기 DataContext 등을 설정하기 위해 C# 등에서 코드로 직접 객체를 생성하고 설정하는 작업을 수행해도 되나, 간단히 객체만을 생성하여 등록하는 작업을 수행하면 되는 경우 XML 상에서 객체를 생성하고 바인딩하는 과정을 수행해주면 된다. Window에 데이터컨텍스트를 설정하려면 속성을 열고 내부에 xmlns:NAMESPACE=clr-namespace:NAMESPACE 로 지정해두었던 네임스페이스 내 객체를 명시해주면 된다. 혹은 Resources 내부에 객체를 생성해두고, Binding Source를 활용하여 리소스를 바인딩해주는 과정을 수행해주어도 된다. 복잡한 생성 과정을 가지고 있다면, C# 코드를 통해 생성하는 과정을 만드는 것이 좋다. 2025. 12. 16.
MvvmToolkit 마이크로소프트 사에서 오픈소스로 운영하고 있는 패키지로, WPF 등에서 MVVM 패턴을 구현하면서 자주 사용하는 보일러플레이트들을 제공해주는 패키지이다. INotifyPropertyChanged 등을 구현하기 위해 ViewmodelBase 등을 구현하는 경우가 많은데, 해당 패키지를 사용한다면 ObservableObject를 상속시켜 SetProperty 메소드를 사용하는 것으로 간결하게 구현할 수 있다.혹은 ObservableProperty 애트리부트를 해당 속성에 작성하는 것으로 간결하게 구현할 수도 있다. RelayCommand 또한 제공하고 있으며, 커맨드로 내보내려는 메소드에 RelayComand 애트리부트를 작성해주면 된다. 자세한 내용은 아래 링크에서 확인할 수 있다.https://learn.. 2025. 12. 16.
WPF Today I Learn XML로 객체를 생성하고 관리하는 방법을 알았다. 내에서 C# 객체를 생성하는 것이 가능하며, 추후 데이터 컨텍스트 등에서 바인딩을 수행할 때 {Binding Resource={StaticResource RESOURCE_NAME} Path={PATH}} 등을 작성하여 객체의 정보를 바인딩할 수 있음을 알게 되었다. 뷰모델을 작성하면서 INotifyPropertyChanged, ICommand 등등을 구현하는 보일러플레이트 코드가 많다고 느꼈는데, Mvvm Toolkit을 활용해서 이러한 보일러플레이트들을 많이 줄일 수 있다는 것을 알게 되었다. INotifyPropertyChanged를 구현해둔 ObservableObject, 프로퍼티 변경 시 변경 이벤트를 실행하는 코드를 작성해주는 Observabl.. 2025. 12. 11.
WPF 독학 C#에 대해 전반적인 내용은 얼추 알고 있고, 자바와 비슷한 면이 많다고 생각해서 바로 WPF 공부에 들어갔다. '이것이 C#이다 3판'을 읽어봤는데, 대리자, 리플렉션, 어트리부트 등이 C++의 함수 포인터, 자바의 리플렉션과 어노테이션 등등과 비슷한 개념이 많아서 금방 익힐 수 있었다. WPF는 마이크로소프트에서 제공하는 WPF 자습서를 통해 공부했다. 필요한 정보가 많이 흩어져 있는 느낌이 들었는데, 예시 리포지토리를 훑어보고, 비슷하게 개발이 가능한 MAUI 3 등의 자습서 등을 확인해보면서 전반적인 내용을 익힐 수 있었다. 관련 책도 많이 없거나 절판되어서 예시 리포지토리와 MAUI 3 자습가 큰 도움이 되었다. 자습서는 되도록이면 원문으로 읽으려고 하고 있고, 번역이 필요할 경우 번역본과 원문.. 2025. 12. 10.