[WPF] Behavior 만들기 – 포커스 하면 TextBox 모든 텍스트 선택하기
이번 글에서는 WPF에서 Behavior에 대해 만들어 보겠습니다. Behavior는 WPF에서 MVVM 패턴을 지키면서 UI 컨트롤에 기능을 더해주는 방식으로 .xaml.cs에 정의하는 것이 아닌 View와 ViewModel 사이에서 UI 동작을 중재하는 방식입니다. Behavior에는 핵심적인 …
이번 글에서는 WPF에서 Behavior에 대해 만들어 보겠습니다. Behavior는 WPF에서 MVVM 패턴을 지키면서 UI 컨트롤에 기능을 더해주는 방식으로 .xaml.cs에 정의하는 것이 아닌 View와 ViewModel 사이에서 UI 동작을 중재하는 방식입니다. Behavior에는 핵심적인 …
C#에서 ShowDialog와 Show 함수는 Window에서 제공하는 함수로, 모달(Modal)인지 아닌지(Modaless) 차이가 있지, 두 함수 모두 새 창을 띄우는 함수입니다. 두 방식의 차이는 아래 표와 같습니다. 구분 Show ShowDialog 창 종류 Modeless …
이번 글에서는 INotifyDataErrorInfo에 대해 알아보겠습니다. INotifyDataErrorInfo는 사용자 입력 값을 검증하기 위한 인터페이스로 ViewModel에서 데이터 검증 오류를 UI에 알리는 방식을 제공하는 인터페이스입니다. 이 인터페이스를 사용하면 속성에 오류가 생겼을 때 UI에 알려주고 …
이번 글에서는 lock에 대해 알아보겠습니다. lock은 공유 리소스에 대한 단독 액세스를 보장하는 문입니다. 아래와 같이 공유된 리소스에 두 개의 쓰레드가 동시에 접근한다고 가정해봅시다. 당연히 현재 값에서 1을 증가 시켰으니 temp …
C#의 checked와 unchecked 문은 오버플로우 검사 여부를 제어하는 키워드입니다. 정수 계산에서 값이 자료형의 범위를 벗어날 때 예외를 던질지, 그냥 넘어갈 지를 결정합니다. 정수 계산에서 오버플로우가 발생하면 System.OverflowException이 throw됩니다. 기본 명령문은 …
WPF에서 TreeView를 사용하는 방법에 대해 알아보겠습니다. 생각보다 많은 것을 지원해주지 않아서 빠르게 알아보겠습니다. 만들어 볼 예제는 Folder, File 구조이고, MainWindow.xaml에 아래와 같이 입력하겠습니다. 그 다음 MainWindowViewModel.cs를 만들어 아래와 같이 입력하겠습니다. …
WPF 개발을 하다 보면 창에 표현되는 내부 UI가 창의 크기를 넘어가는 화면을 만들 때가 있습니다. 이럴 때 내부의 UI 크기는 그대로 두면서 스크롤이 필요해지는 상황이 생기는데 그 때 ScrollViewer를 사용하면 …
이번 글에서는 DispatcherTimer에 대해 알아보겠습니다. DispatcherTimer는 간단한 수준의 주기적인 작업을 할 때 사용하는 타이머입니다. WPF에서 Thread, Task를 사용하면 주기적인 작업을 할 수 있지만 간단한 수준의 반복 작업이나, UI만 갱신하는 경우에는 …
TabControl은 여러 화면을 하나의 화면에서 볼 때 사용하는 컨트롤입니다. 예를 들어 설정, 로그, 정보 같은 화면을 각각 구성하는데 하나의 화면에서 보고 싶으면 TabControl을 사용하시면 좋습니다. 이번 글에서는 MVVM 패턴으로 TabControl을 …
이번 글에서는 간단하게 변환기 IValueConverter에 대해 알아보겠습니다. 데이터 바인딩을 사용하면 객체 유형을 변환하는 작업을 수행하게 됩니다.데이터 바인딩 글을 보시면 string으로 입력한 색상이 Background에도 적용하는 것을 볼 수 있습니다. 이는 WPF의 …