[WPF] Serializable 특성 사용하여 XML/JSON으로 저장하기
이번 글에서는 Serializable 특성 사용하여 XML, Json 파일로 저장해보도록 하겠습니다. 프로그램을 만들다 보면 이제 객체를 파일로 저장하거나 네트워크를 통해 전송해야할 일이 생깁니다. 이때 객체를 저장하거나 전송할 수 있는 데이터 형태로 …
이번 글에서는 Serializable 특성 사용하여 XML, Json 파일로 저장해보도록 하겠습니다. 프로그램을 만들다 보면 이제 객체를 파일로 저장하거나 네트워크를 통해 전송해야할 일이 생깁니다. 이때 객체를 저장하거나 전송할 수 있는 데이터 형태로 …
이전 글 DependencyProperty를 사용해서 Behavior에 속성을 만들어 보았습니다. 속성을 만든 것처럼 Command도 만들어 Binding 할 수 있습니다. 이번 글에서는 DependencyProperty 사용해서 탐색기에서 파일을 Drag 해서 Drop을 받는 Command를 만들어 보겠습니다. …
이번 글에서는 C#을 이용하여 dll을 만들고 WPF 프로그램에서 사용해보도록 하겠습니다. dll이 무엇인지는 쉽게 나오니 바로 만들어 보도록 하겠습니다. C#을 사용하여 dll을 만들 땐 클래스 라이브러리 프로젝트를 선택하면 됩니다. 라이브러리 이름은 …
이번 글에서는 WPF에서 애니메이션에 대해서 알아보겠습니다. WPF에서는 모든 컨트롤을 애니메이션 지원을 해줍니다. 움직이거나, 회전하거나, 크기가 변경되는 등등 애니메이션처럼 표현해줍니다. 애니메이션을 만들 땐 몇 가지 핵심적인 설정 값이 있습니다. Behavior를 사용해서 …
Base64는 이진 데이터를 64개의 출력 가능한 ASCII 문자로 인코딩 하는 방식입니다. 여기서 64는 64진법이란 뜻입니다. Base64를 사용하게 되면 길이가 약 33퍼정도 더 늘어나는데 그럼에도 불구하고 사용하는 이유는 바이너리 데이터를 안전하게 …
이번 글에서는 DependencyProperty를 사용하여 Behavior에 속성을 만들어 ProgressBar 색상 바꾸는 작업을 해보겠습니다. DependencyProperty(의존성 속성)는 WPF 프레임워크가 값을 직접 관리해 주는 특별한 속성입니다. 일반적인 C# 속성은 클래스 내부 변수에 값을 저장하고 …
이번 글에서는 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 …