All Pages
2.1.1 예제 - MVVM 수동 구현
2.1.1 예제 - MVVM 수동 구현
2025.05.011️⃣ 학습 목표: 예제의 학습 목표와 동작 시나리오를 파악한 뒤, 소스코드를 직접 확인합니다.더보기✔️ 1. 학습 목표Step 1. CommunityToolkit.Mvvm 패키지를 통한 자동완성 기능을 학습하기에 앞서,전통적인 방식의 C# MVVM 패턴 구현 방법을 되짚어 봅니다.INotifyPropertyChanged 인터페이스를 상속 구현하여,프로퍼티가 변경되었을 때, View에 반영되는 로직을 구현하는 방법을 되짚어봅니다.Step 2.이후에 CommunityToolkit.Mvvm 패키지를 사용해 자동 구현할 때,어떤 부분이 자동화되어 편리한지 확인합니다.Step 3.그리고 프로젝트의 어느 부분에 적용하면 효과적일지 예상해봅니다. ✔️ 2. 예제 동작 시나리오TextBox에 문자열을 입력하면T..
2.1 개요
2.1 개요
2025.05.01[ObservableProperty]는 MVVM 구조에서 프로퍼티(Data)를 다루는 방법입니다. 1️⃣ 공식문서: 공식 문서를 참고하여 우측 목차를 학습의 기준과 방향으로 설정하고, 단계적으로 학습을 진행합니다. 더보기📚 Microsoft Docs: Microsoft CommunityToolkit MVVM - ObservableProperty*우측 목차를 학습 기준으로 합니다. 2️⃣ 용어: 기술 용어의 각 어절은, 기술 개념 설명과 같습니다.더보기 ✔️ [ObservableProperty] 의미 Observable = "감지 가능한"으로 해석하면, 좀 더 이해하기 쉽습니다.Observable + Property = "(변경 상태) 감지 가능한 + 프로퍼티" 프로퍼티에 값이 할당되는 것과 같은변경 ..
2. ObservableProperty
2. ObservableProperty
2025.05.01
1.3.1 예제 - MVVM Source Generator
1.3.1 예제 - MVVM Source Generator
2025.05.011️⃣ 학습 목표: 예제의 학습 목표와 동작 시나리오를 파악한 뒤, 소스코드를 직접 확인합니다. 더보기✔️ 1. 학습 목표CommunityToolkit.Mvvm 패키지를 사용한 간단한 프로젝트를 구현합니다.Source Generator가 자동 구현해주는 소스코드를 확해봅니다. ✔️ 2. 동작 시나리오텍스트 박스에 '문자열' 입력버튼 클릭메시지 박스에 "Hello, {입력한 문자열}!" 출력✔️ 3. 소스코드 2️⃣ Ex01SourceGenerator : CommunityToolkit.Mvvm 패키지를 활용해 간단한 프로젝트를 단계별로 따라하며 구현해봅니다. 더보기 📁 1. 아래 링크를 참고해 WPF 프로젝트를 생성 합니다. WPF 프로젝트 생성하기01. Visual Studio 실행더보기 02. 새 ..
1.3 Source Generator 란?
1.3 Source Generator 란?
2025.05.011️⃣ Source Generator 개요더보기 📚 Microsoft Docs: Microsoft Learn / Learn / .NET / MVVM ✅ 소스코드 생성기(SG, Source Generator)란? 소스 생성기는 .NET 5부터 도입된 기능으로, 우리가 반복적으로 작성하던 MVVM 관련 C# 코드를 컴파일 타임에 자동으로 생성하여 프로젝트에 생성해 주는 컴파일러 확장 도구입니다. ✅ 사용 방법개발자가 특정 어트리뷰트[attribute]와 클래스에 partial 키워드 추가와 같은 작업을 해주면CommunityToolkit.Mvvm 패키지의 Source Generator가프로젝트가 빌드될 때, MVVM 구현에 필요한 소스코드를 자동으로 생성합니다. ✅ 예제 소스코드 2️⃣ Attri..
1.2 패키지 설치 방법
1.2 패키지 설치 방법
2025.05.011️⃣ "NuGet 패키지 관리자"에서, CommunityToolkit.Mvvm 설치하는 방법더보기 WPF 프로젝트 생성하기01. Visual Studio 실행더보기 02. 새 프로젝트 생성더보기❶ 최근 실행한 프로젝트의 목록을 보여줍니다.❷ GitHub, Azure, DevOps, Bitbucket 등 원격 저장소에서 프로젝트를 가져옵니다.❸ 내 컴퓨터의 로컬basiclike.tistory.com가장먼저, 링크를 참고해 WPF 프로젝트를 생성 합니다. ① 솔루션 탐색기에서 프로젝트 우클릭 ② Nuget 패키지 관리자 실행 ③ Nuget 패키지 관리자는 설치된 패키지 리스트를 보여주는 탭이 최초로 보여진다. ④ "찾기" 탭으로 이동하여, ⑤ CommunityToolkit.Mvvm 검색어 입력 후,..
1.1 개요
1.1 개요
2025.05.011️⃣ CommunityToolkit.Mvvm 개요더보기 📦 CommunityToolkit.Mvvm 이란?Microsoft가 공식적으로 지원하는 MVVM (Model-View-ViewModel) 패턴 라이브러리 입니다.WPF, MAUI, UWP 등의 .NET 기반 App에서, MVVM 구조 구현에 필요한 소스코드를 C# Source Generator 를 활요해 자동 생성하는 라이브러리 입니다.MVVM 구조에서 발생하는 반복적이고 번거로운 코드(boilerplate) 를Source Generator(소스 생성기) 자동 생성합니다.즉, CommunityToolkit.Mvvm 패키지를 사용해, MVVM 구조를 구현하는 방법을 학습해야 합니다. ✔️ 학습 기준- WPF는 학습 자료가 거의 없습니다. 공식 ..
1. CommunityToolkit.Mvvm
1. CommunityToolkit.Mvvm
2025.05.01
6.1 AsyncRelayCommand, AsyncRelayCommand<T>
6.1 AsyncRelayCommand, AsyncRelayCommand<T>
2025.04.291. 출처 및 참고자료더보기📚 Microsoft Docs: AsyncRelayCommand 및 AsyncRelayCommand 관련 네임스페이스: using CommunityToolkit.Mvvm.Input; 핵심 클래스AsyncRelayCommand 클래스IAsyncRelayCommand 인터페이스[AsyncRelayCommand] 소스 제너레이터 어트리뷰트 2. 개요더보기✔️ 작동 방식AsyncRelayCommand는 비동기 메서드(async Task)를 ICommand로 바인딩할 수 있도록 해주는 명령 클래스입니다.RelayCommand와 유사하지만, 내부에서 await를 안전하게 처리하며 UI가 멈추지 않도록 돕습니다.AsyncRelayCommand는 매개변수를 받는 비동기 명령을 처리합니다..
06. AsyncRelayCommand<T>
06. AsyncRelayCommand<T>
2025.04.291️⃣ AsyncRelayCommand 개요더보기📚 Microsoft Docs: AsyncRelayCommand ✅ AsyncRelayCommand 개요 MVVM에서 비동기 작업을 Command로 실행하기 위해 사용하는 구조입니다.여기서 는 CommandParameter로 전달될 인자의 타입입니다. ✅ 사용 예시 문제 상황해결 방법 버튼 클릭 시 API 요청, 파일 다운로드 등 시간이 걸리는 작업이 필요async/await로 비동기 처리ViewModel에서 Command 방식으로 비동기 로직 호출AsyncRelayCommand 사용작업 중 중복 실행 방지내부적으로 IsRunning 상태 추적 가능예외 처리를 깔끔하게 하고 싶음Try/Catch로 비동기 에러 관리 가능 ✅ RelayCommand에..
05.4 NotifyCanExecuteChanged
05.4 NotifyCanExecuteChanged
2025.04.29✅ 5. 다양한 사용법① 조건이 자주 바뀌는 경우 → NotifyCanExecuteChanged[RelayCommand(CanExecute = nameof(CanSubmit))]private void Submit() { }private bool CanSubmit() => IsChecked && !string.IsNullOrEmpty(InputText);private bool isChecked;public bool IsChecked{ get => isChecked; set { SetProperty(ref isChecked, value); SubmitCommand.NotifyCanExecuteChanged(); }}NotifyCanExecuteChanged()를..
05.3 CanExecute
05.3 CanExecute
2025.04.291️⃣ CanExecute 개요더보기📚 Microsoft Docs: Microsoft CommunityToolkit MVVM - ObservableProperty ✅ CanExecute 개요 CanExecute는 WPF의 ICommand 인터페이스에서 제공하는 기능으로,명령(Command)이 실행 가능한지 여부를 판단하는 조건부 로직입니다. ✅ 사용 예시 상황 예시 입력이 없을 때 버튼 비활성화이름 입력이 없으면 “인사” 버튼 비활성화처리 중 중복 실행 방지비동기 작업 중 같은 버튼 눌리지 않게 막기조건이 맞을 때만 실행체크박스가 체크될 때만 삭제 버튼 활성화 등 ✅ RelayCommand에 CanExecute 연동하는 방법 [RelayCommand(CanExecute = nameof(CanGree..