본문 바로가기

Study/WPF15

[WPF][MVVM][Study] MVVM 실습 4 - 주소록 만들기 MVVM을 이용해 주소록을 만드는 과정을 실습하였다. ⚠️주의 : dll 파일 오류로 인해 실행이 안될 수 있음! 0. 파일 구조 - 파일 구조는 아래와 같다. 1. MainView[View] 1) xaml 2) code-behind // MainView.xaml.cs using System.Windows; using WPF_MVVM_EX_4_2.Interface; namespace WPF_MVVM_EX_4_2.View { /// /// MainView.xaml에 대한 상호 작용 논리 /// public partial class MainView : Window , IWindowView // 인터페이스 IWindowView 상속 { // 생성자 public MainView(ViewModel.MainView.. 2023. 9. 27.
[WPF][MVVM][Study] ReactiveUI 다운 UI를 화면에 바로바로 연동시키기위해 Notify~로 시작하는 인터페이스를 상속받아 사용할 수 있다. 그런데 이를 좀 더 편하게 사용하고자 만들어 놓은 라이브러리가 있는데 그것이 ReactiveUI이다. 찾고 다운받고 이러는데 엄청 힘들었어서 다음에도 이런일이 있을까봐 미리 dll 파일만 올려놓는다. 이 파일의 압축을 풀고 비주얼 스튜디오 솔루션 탐색기에서 참조를 오른쪽 클릭하여 참조추가 버튼을 누른 뒤 찾아보기로 들어가 이 파일속 모든 dll 파일을 드래그하여 넣어주면 된다. 2023. 9. 26.
[WPF][C#][Study] WPF 시작 10일차 1. Border 컨트롤 - 테두리, 배경 등을 그리는 데 사용 - 패널을 Border로 감싸서 사용 [예제 1] Button 1 Button 2 Button 3 [결과] - Stack 패널 외부에 두께 1의 하얀 테두리가 생김 [예제 2] - CornerRadius를 조절해 테두리를 둥글게 할 수 있음 Button 1 Button 2 Button 3 [결과] - 각진 모서리가 아닌 둥근 모서리가 되었다. [예제 3] - BorderThickness를 이용해 테두리의 색상 및 두께를 조절할 수 있다. Button 1 Button 2 Button 3 [결과] - 위 아래에 좀 더 두꺼운 테두리가 생겼다. [예제 4] - LinearGradientBrush를 이용해 테두리 내부의 배경을 색칠할 수 있다. B.. 2023. 9. 26.
[WPF][C#][Study] DataGrid 컨트롤 DataGrid 컨트롤 - ListView와 비슷하지만 추가기능 제공(데이터에 따라 열 자동 생성, 편집 가능) [예제 1] - DataGrid 기본 형태 1) xaml 2) code-behind using System; using System.Collections.Generic; using System.Windows; namespace WpfTutorialSamples.DataGrid_control { public partial class SimpleDataGridSample : Window { public SimpleDataGridSample() { InitializeComponent(); List users = new List(); users.Add(new User() { Id = 1, Name =.. 2023. 9. 25.
[WPF][MVVM][Study] MVVM 실습 3 - 학생 리스트 만들기 MVVM 패턴을 활용해 WPF로 간단한 학생 리스트를 만들어 보았다. 0. 파일 구조 - 파일의 구조는 아래와 같다. 1. View 생성 [xaml] [code-behind] using System.Windows; namespace WPF_MVVM_EX_App { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new ViewModel.StudentViewModel(); } } } - 좌측은 DataGrid를 사용해 학생 목록을 보여주고자 하였고, 좌측에는 선택한 학생의 정보를 보여주고자 하였다. - ViewModel에 DataContext를 연결에 View와 V.. 2023. 9. 22.
[WPF][C#][Study] WPF 시작 8일차 1. ItemsControl - Item을 선택할 필요없이 데이터만 보여주기 위한 상황에서 사용하기 좋음 - Item을 선택해야 할 경우에는 ListBox나 ListView를 사용하는 것이 좋음 [예제 1] - 데이터바인딩, 템플릿 사용 - TodoList 1) xmal 2) code-behind using System; using System.Windows; using System.Collections.Generic; namespace WpfTutorialSamples.ItemsControl { public partial class ItemsControlDataBindingSample : Window { public ItemsControlDataBindingSample() { InitializeComp.. 2023. 9. 22.
[WPF][MVVM][Study] MVVM 실습 2 - 단위 변환기 2 이번에는 버튼을 눌러야만 단위를 변환해주는 단위 변환기를 만드는 실습을 해보았다. 1 ~ 3. (실습 1)을 참고하여 기본적인 작업을 참고 4. Command 클래스 생성 및 코드 작성 1) Command 클래스를 생성한다.(프로젝트>추가>클래스) 2) 인터페이스 ICommand를 상속받아서 인터페이스를 구현해준다. 3) 생성자를 이용해 외부의 실행 전 조건을 검사할 함수와 실제로 실행할 함수를 저장한다. // Command.cs using System; using System.Windows.Input; namespace WPF_MVVM_EX_2 { class Command : ICommand { Action ExecuteMethod; Func CanexecutedMethod; public Command.. 2023. 9. 21.
[WPF][C#][Study] WPF 시작 7일차 1. MessageBox - 메세지 창을 띄운다. - 내용 및 제목, ok, yes, no버튼, 기본 버튼 이미지 등을 기본적으로 추가할 수 있다. [예제] 1) xaml Simple MessageBox MessageBox with title MessageBox with buttons MessageBox with response MessageBox with icon MessageBox with default choice 2) code-behind using System; using System.Windows; namespace WpfTutorialSamples.Dialogs { public partial class MessageBoxSample : Window { public MessageBoxSampl.. 2023. 9. 21.
[WPF][MVVM][Study] MVVM 실습 1 - 단위 변환기 MVVM을 만들면서 이해하기 위해 간단한 실습을 해보았다. 아래 블로그를 참고해서 만들었다. https://esound.tistory.com/10 [C# WPF] MVVM 간단하게 시작하기 - 1 (데이터바인딩, 연동) MVVM, Model - View - ViewModel WPF에서 사용할 수 있는 디자인패턴입니다. 이번 글과 앞으로 이어지는 글에서 MVVM을 쉽고 간단하게 사용할 수 있도록 공부하며 배운 내용을 정리하겠습니다. View : 사용자 esound.tistory.com 그럼 지금부터 WPF에서 MVVM 패턴을 이용한 단위 변환기 만들기 설명을 시작하겠다. 1. WPF 시작 - 기본적으로 WPF 앱 프로젝트 파일을 생성한다. 2. 폴더 작업 - 솔루션 탐색기에서 프로젝트 하위에 Model, .. 2023. 9. 20.
[WPF][C#][Study] WPF 시작 6일차 1. 데이터 바인딩 - 두 개의 데이터/ 정보에 대한 소스를 결합하고 데이터 동기화를 유지하는 기술 - source와 destination UI 구성간에 바인딩을 주로 함 - {Binding} 이렇게 중괄호 사이에 넣어서 사용 [예제] [결과] - TextBox의 Name을 txtValue로 설정 - TextBlock의 Text에 바인딩을 시킴 => Binding Path를 Text로 연결 + ElementName을 txtValue로 설정 => TextBlock의 Text가 현재 바인딩 하고 있는 TextBox에 사용자가 적은 Text가 그대로 연결되어 나옴 1-1. DataContext - 바인딩의 기본 소스 - 기본 설정값은 따로 없음(모두 null 값을 가짐) [예제] 1) XAML 2) Code-.. 2023. 9. 20.
[WPF][C#][Study] WPF 시작 5일차 1. ToolTips - 말 그대로 툴팁을 지원하는 컨트롤 - 단순 문자열이 아닌 객체 유형이기 때문에 어느 곳에나 넣을 수 있음 - ToolTipService.ShowDuration 속성을 이용해 표시되는 시간도 조절할 수 있음 Click here! (결과) 2. 텍스트 렌더링 1) TextFormattingMode - Ideal(기본)과 Display 중에서 선택 가능 - 보통 Ideal 설정이 적합하기에 변경하지 않고 그대로 둠 - 매우 작은 텍스트를 렌더링해야 하는 경우에는 Display 설정이 더 나을 수 있음 TextFormattingMode.Ideal, small text TextFormattingMode.Display, small text TextFormattingMode.Ideal, la.. 2023. 9. 19.
[WPF][C#][Study] WPF 시작 4일차 1. CheckBox [XAML] Application Options Enable feature ABC Enable feature XYZ Enable feature WWW [결과] 2. CheckBox - IsTreeState - true, false 외에 null 까지 3가지 상태로 표현하는 방법 [XAML] Application Options Enable all Enable feature ABC Enable feature XYZ Enable feature WWW [Code-Behind] using System; using System.Windows; namespace WpfTutorialSamples.Basic_controls { public partial class CheckBoxThreeState.. 2023. 9. 18.