C# WPF/07 CommunityToolkit
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..
06.1 CommandParameter
06.1 CommandParameter
2025.04.29RelayCommand는 MVVM 구조에서 메서드(Logic)를 실행하는 방법 입니다. CommandParameter는 RelayCommand에 "매개변수"를 전달해 메서드(Logic)를 실행하는 방법 입니다. 1️⃣ CommandParameter 개요더보기📚 Microsoft Docs: CommunityToolkit.Mvvm.Input.RelayCommand ✅ CommandParameter 개요XAML에서 Button, MenuItem, ListBoxItem 등의 컨트롤이 명령(Command)을 실행할 수 있습니다.CommandParameter는 이때 추가적인 데이터를 전달하는 속성입니다.MVVM에서는 View와 ViewModel이 직접 연결되지 않도록 하기 위해, 이벤트 기반의 직접 호출 대신..
06. Generic Parameter
06. Generic Parameter
2025.04.29RelayCommand는 MVVM 구조에서 메서드(Logic)를 실행하는 방법 입니다. CommandParameter는 RelayCommand에 "매개변수"를 전달해 메서드(Logic)를 실행하는 방법 입니다. 1️⃣ RelayCommand 개요더보기 📚 Microsoft Docs: RelayCommand Generator ✔️ RelayCommand 개요RelayCommand는 View에서 ViewModel 메서드를 실행해야 할 때, 매개변수를 전달 하기 위해 사용합니다.CommandParameter는전달되는 인자의 타입을 명확히 지정할 수 있는 제네릭 버전의 명령(Command)입니다. ✔️ 왜 필요한가?CommandParameter="{Binding}"로 객체를 전달할 때,object로 ..
05. RelayCommand
05. RelayCommand
2025.04.29RelayCommand는 MVVM 구조에서 메서드(Logic)를 실행하는 방법입니다.Relay(중계자) = 바통을 넘기다, 전달하다 → "동작(명령)을 전달(delegate)하는 역할"(View)Command → RelayCommand → (ViewModel)Method 1️⃣ RelayCommand 개요더보기 📚 Microsoft Docs: CommunityToolkit.Mvvm.Input.RelayCommand ✅ 작동 방식 CommunityToolkit.Mvvm.Input.RelayCommand의 [RelayCommand] 어트리뷰트는ICommand 인터페이스를 자동으로 구현해주는 소스 생성기(SG) 기반 기능입니다. [RelayCommand] 어트피뷰트를 메서드에 붙이면 해당 메서드를 실행..