C# WPF/03
17. WeatherApp - MVVM(2)
17. WeatherApp - MVVM(2)
2024.11.2901. ICommand더보기01.1 ICommand 용도: 컨트롤 이벤트 핸들러 대체합니다.예를들어, 코드 비하인드 버튼 클릭 이벤트 로직을, 별도의 ViewModel 로직에서 구현 합니다. 01.2 동작구조CanExecuteChanged 이벤트가 발생하면 CanExecute( )를 통해 컨트롤이 사용가능한지 체크하고UI 사용자 명령이 발생하면 IsEnable이 true로 활성화된 컨트롤은Execute( ) 에 정의된 동작이 실행됩니다. 02.더보기02.1 02.2public class SearchCommand : ICommand{ public WeatherVM VM { get; set; } public event EventHandler? CanExecuteChanged; publ..
16. Command
16. Command
2024.11.2701. 이벤트 핸들러 구현 예시더보기01.1 Title="ICommandTest" Height="80" Width="300"> 01.2private void Button_Click(object sender, RoutedEventArgs e){ MessageBox.Show("MyICommand Execute()");} 01.3버튼을 누르면, 버튼 클릭 이벤트 > Button_Click 이벤트 핸들러 로직 > MessageBox 실행 01.4간단한 버튼 클릭 이벤트 핸들러를 구현했습니다.이를 Command 구현과 비교해봅시다. 02. Command 이론더보기02.1 ICommand - 용도: UI컨트롤 이벤트 ..
15. WeatherApp - MVVM(1)
15. WeatherApp - MVVM(1)
2024.11.2701.더보기01. MVVM 패턴의 전제 조건[유형1] View 컨트롤의 변경 >> ViewModel 의 프로퍼티 변경 >> View 컨트롤 반영 [유형2] API, TCP, DB >> ViewModel 의 프로퍼티 변경 >> View 컨트롤 반영 두 유형 모두, ViewModel의 프로퍼티 변경되는 시점을 기준으로 View 컨트롤에 반영된다. ViewModel의 프로퍼티 변경을 알려주고, 이때 동작하는 기술을 배우는 것이 MVVM 패턴을 구현하는 핵심이다. 01.2 Data Binding OneWay: ViewModel > View TwoWay: ViewModel > View View > ViewModel ..
14. WeatherApp - View
14. WeatherApp - View
2024.11.2701.더보기01.1 02.더보기02.1 View 폴더 생성 02.2 기본 생성된 Mainwindow 제거 02.3 WeatherWindow 생성 02.4 WeatherWindow XAML 구현 Title="WeatherWindow" Height="600" Width="400"> ..
13. WeatherApp - ViewModel
13. WeatherApp - ViewModel
2024.11.2701.더보기01.1 프로그램은, 데이터와 로직으로 이루어집니다. C언어에서 단수 자료형과, 간단한 로직으로 프로그램을 만들었습니다.Model은 자료형입니다. ViewModel은 로직입니다. 복잡한 로직, 프로그램 외부와 데이터(DB, TCP/IP, Serial 등)를 주고받는 로직 모두 ViewModel에서 처리됩니다. 02. ViewModel 폴더 생성더보기학습 과정에서 ViewModel을 확실하게 구분하기 위해 ViewModel 폴더를 만듭니다.ViewModel 폴더와 ViewModel.Helpers 폴더를 만듭니다. 03. ViewModel.Helpers 더보기ViewModel.Helpers 폴더의 AccuWeatherHelpers.cs 에서는, 외부 API 데이터를 Request 하거나, DB..
12. WeatherApp - Model
12. WeatherApp - Model
2024.11.2701.더보기01.1 MVVC 패턴은 Model, View, ViewModel 로 소스코드의 역할을 구분해 정한 것 뿐입니다. 언제나 하는 이야기지만, 프로그램은 '데이터'와 '로직' 단 두가지만으로 이루어집니다.기본 자료형 → 복합 자료형 → 사용자 정의 자료형(구조체) → 클래스(구조체 + 함수) > → Model 01.2 좀 더 단순하게 생각합시다.프로그램은, 데이터와 로직으로 이루어집니다. Model은 자료형입니다. ViewModel은 로직입니다.C언어에서, 기본적인 자료형과 로직만으로 프로그램을 구했엇습니다.Model과 ViewModel 만으로 프로그램을 구현하고, 콘솔에 출력하면 C언어 프로그래밍과 동일한 구현 과정이 됩니다. 다른점은, 콘솔 대신 View라는 UI로 ViewModel의 로직..
11. WeatherApp - API
11. WeatherApp - API
2024.11.2701. AccuWeather 회원가입더보기01.1 AccuWeather API 사이트로 이동합니다. AccuWeather APIs | home AccuWeather APIs | homeExclusions, Conditions and Restrictions of License. Specifically excluded from the License grant relating to the APIs and the API Data are any television type uses such as electronic publishing, database transmissions, side band transmissions, cable castindeveloper.accuweather.com 01.2 Accu..
01. Data Binding
01. Data Binding
2024.11.2701. 목표더보기 02. 준비더보기02.1 UI 준비기본 UI 틀을 가진 프로젝트를 준비합니다.위 압축 파일을 다운받아 실행하거나, 새 프로젝트에서 아래 XAML 코드를 사용하세요. Title="Data Binding" Height="150" Width="265" > 02.2 Binding 테스트 데이터 준비(1) 02.3 Binding 테스트 데이터 준비(2) Person person = new Person { Age = 20, name = "Richard"}; 0..