본문 바로가기

분류 전체보기786

[WPF] ObservableCollection WPF를 사용하면서 처음 알게 된 ObservableCollection 클래스와 프로젝트 진행 시, 헤맸던 부분을 정리해봅니다. 1. ObservableCollection Class항목이 추가 또는 제거되거나 전체 목록을 새로 고칠 때 알림을 제공하는 동적 데이터 컬렉션 저는 프로젝트를 진행할 때, MVVM 패턴에 맞춰서 진행을 하다보니 처음에 가장 어려웠던 점은 VIew와 ViewModel의 연동이었습니다. 대표적으로 ViewModel 단에서 데이터가 변경되어도 View 즉, UI에는 반영이 안되는 것이죠.(🥸 리액트 배울 때는 State에 설정만 해주면 페이지 고침없이도 딴딴하고 바뀌는데,, 라는 생각을 잠깐 했습니다.) 보통은 이럴 때, INotifyPropertyChanged를 구현해서 View.. 2024. 5. 15.
[WPF] View, ViewModel Singleton 지난 프로젝트에서 페이지 전환이 많다보니 생성자를 통해 View나 ViewModel을 넘기는 일이 많았습니다. ☠️ 하지만 새로운 인스턴스를 생성하는 방식으로 넘기게 될 때 동작이 제대로 작동하지 않는 문제가 있었습니다. 예를 들면,123456public void OpenWindowSub1(){    WindowSub1 window = new WindowSub1();    window.DataContext = new ViewModelSub1(new ViewModelMain());    window.Show();} Window를 새롭게 호출하는 경우, DataContext로 연결된 ViewModelSub1에 현재 ViewModelMain의 새로운 인스턴스를 넘겨줄 경우, 인스턴스에 저장된 데이터를 사용하지.. 2024. 5. 12.
[WPF] 생성자 Overloading (2) 프로젝트 준비를 하면서 미리 코드를 작성해보다 마침 정리했던 개념인 생성자 Overloading를 사용해보았습니다. 상속을 받으면 NullPointerException이 나고, 하나의 생성자를 사용하면 문제없이 동작하여 생성자를 상속받을 때 부모 생성자의 코드 삽입 위치를 한 번 정리해보고자 합니다. 🤓 처음에 글을 작성할 때, Overloading을 Overriding으로 잘못 적었는데,다시 한 번 정리하면 다음과 같습니다.Overloading: 메서드 이름은 같지만 매개변수 개수나 타입등을 달리한 여러 개의 메서드를 정의하는 것Overriding: 부모 클래스에서 상속받은 메서드의 내용을 '재정의' 하는 것 ⭐ 현재 생성자의 경우, 이름은 같지만 매개변수 개수가 다르게 정의하고 있으므로 Overlo.. 2024. 5. 11.
# 14_NSIS_선물_대신_설치_파일 14_NSIS_선물_대신_설치_파일조금 더 생각해 보고 싶은 부분을 공부한 글입니다.작성일: 2024-04-27수정일: 2024-05-01  주제를 선정한 이유3월에 시작한 프로젝트가 4월 중순에 끝이났습니다. 프로그램 배포도 끝나고 수정은 간단한 UI나 기능 개선만 이뤄지고 있던 중.. 설치파일을 수정하는 일을 맡게 되었습니다. 그간 설치파일 생각없이 다음다음만 눌렀던 제 자신을 돌이켜보기 위해 글을 작성합니다☠️ 다음 번에는 좀 더 깔끔한 UI를 가진 설치파일을 만들 수 있길🔥!  NSIS 정의NSIS (Nullsoft Scriptable Install System) is a professional open source system to create Windows installers.즉, Windo.. 2024. 5. 1.
[WPF] 생성자 Overloading WPF 프로젝트를 연습해보다가 프로젝트를 개선할 수 있는 방법을 찾아서 정리하고자 합니다. Window안에 UserControl을 선언해서 View-ViewModel간의 데이터를 전달하는 경우가 많았습니다. 특히, 여러 곳에서 호출되는 View-ViewModel은 다양한 초기 데이터를 받게됩나다. 기존에는 생성자 Overriding을 했었고, 일정 부분 코드가 중복되는 건 어쩔 수 없다고 생각했습니다. 그 때, 찾아낸 BASE에 대해 정리해봅니다.  기존 ViewModel123456789101112131415public ViewModelMain(string data1){    Data1 = data1;}public ViewModelMain(string data1, string data2){    Data.. 2024. 4. 27.
[WPF] 한글 Encoding ANSI / UTF8 대용량 데이터처리시 발생되는 UI Freeze 문제 해결 part1 과거의 경험한 내용 중에 대용량의 데이터를 파일이서 잃거나, Rest API를 통해서 전달 받아서, DataGrid나 ListBox에 출력시 UI Freeze 현상과 메모리 사용량이 증가하는 한다는 것을 해결해보려고 노력 kaki104.tistory.com 프로젝트를 하다가 대용량 데이터를 다운로드할 때, 가끔 UI가 멈추는 현상이 발생했습니다. 마침 이와 관련해서 연습해보면 좋은 글이 있어 실습을 진행하는데, 문제가 코드가 아닌 파일에서 발생했습니다. 글에서는 영어로 된 데이터를 사용하지만, 저는 마침 한글로 된 대용량 파일이 있어 사용을 했던 게 문제가 되었습니다. 인코딩이 제대로 되지 않아 한글이 나오지 않는 문제였습니다. 간단하게.. 2024. 4. 22.