WPF
-
[WPF] 서브 윈도우, 페이지에서 데이터 받아오기WPF 2023. 7. 25. 17:00
안녕하세요. 오랜만에 WPF관련 글로 찾아왔습니다. 요즘은 JPA관련 강의를 듣느라 WPF를 신경 쓸일이 잘 없었네요. 그럼에도 열심히 WPF관련 글을 올릴 예정입니다. 헤헤 오늘 기록할 내용은 WPF기준 메인 윈도우에서 서브 윈도우를 열고 서브 윈도우내 데이터를 메인윈도우로 가져오는 방법에 대해서 기록해보겠습니다. 사실... 그냥 static 놓고 썼었는데 같은 팀의 주임님이 좋은 방법을 알려주셔서 기록해 놓습니다. (Binding까지 하기에는 제가 게으르기도하구... 응용이 충분히 가능하기에 Behind코드로 진행합니다.) 먼저 MainWinodw와 MainWindow가 호출할 SubWindow를 추가하겠습니다. MainWindow.xaml 정말 간단한 SubWindow를 호출할 버튼, 그리고 결과를..
-
[WPF] DataGrid Scroll시 체크박스 해제되는 에러WPF 2023. 5. 12. 13:36
안녕하세요. 오늘은 회사내 매니저 프로그램 수정 DataGrid에서 발생한 에러에 대해 알아보고 수정내용을 기록하고자 합니다. 문제 상황 해당 구조를 통해 DataGrid에 Check Box를 추가했습니다.(구조만 봐주시기 바랍니다. 회사내에서 사용하는 매니저 프로그램이다 보니 코드를 올릴 수 없어 구조만을 따로 따왔습니다.) DataGrid에서 Check Box를 통해 데이터를 체크하는데 스크롤을 하면 간헐적으로 체크리스트까 빠지는 에러가 발생합니다. 예를 들면 1,3,5,7,9번 index를 선택했는데 스크롤을 하면 1,3번만 체크돼있고 나머지 체크는 풀리는것과 같은 문제입니다. 인터넷을 검색해보니 해당 이슈를 가진 분들이 꽤 계셨습니다.(물른 다 외국인이었지만...) 그래서 해당 문제를 해결해 보고..
-
[WPF] ViewModel에서 this.Close()구현WPF 2022. 5. 23. 23:52
안녕하세요. wpf에서 창을 닫을때 사용하는 this.close()를 ViewModel에서 구현해 보고자합니다. 해당 글은 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gostarst&logNo=220100315130 WPF MVVM 패턴에서 Window Close 발췌 : http://jkshay.com/closing-a-wpf-window-using-mvvm-and-minimal-code-behind/ 뷰: public View()... blog.naver.com 글을 참조하시면 쉽게 구현 할 수 있습니다. 저는 여기서 좀더 나아가 간단한 수정을 통해 기존창에서 Sub Form을 호출하고 Sub Form이 종료되도록 구현해 ..
-
[WPF] 타이틀 바 만들기_닫기, 최소화, 사이즈 조절버튼(1)WPF 2022. 4. 25. 16:59
안녕하세요. 오늘은 WPF에서 기본으로 제공하는 타이틀 바가 아닌 타이틀바를 직접 커스텀 해보겠습니다. 어떤 프로그램을 만들때 기본제공되는 타이틀바도 좋지만 커스텀한다면 더욱 프로그램이 예뻐보이겠죠? 시작하겠습니다. 먼저 WPF프로젝트를 하나 만들겠습니다. 저같은경우에는 타이틀바를 맨위에서 높이 30정도로만 주고 만들겠습니다. 크기는 마음대로 하셔도 무방합니다. 윗부분을 타이틀 바로 사용할 예정입니다. 그리고 여기서 저는 첫 RowDefinition에 다시 5개의 Column을 나누겠습니다. 순서는 아이콘(Image), 타이틀바 제목(내용)부분(Dock), 최소화(Button), 최대화(Button), 닫기(Button) 순으로 제작을 해보겠습니다. 앞서 분배한 RowDefinition 중 첫 번째 ro..
-
[WPF] IP Address Mask Control 커스텀 이벤트 수정WPF 2021. 12. 28. 09:03
안녕하세요. 오늘은 저번에 다룬 문제인 IP Address Mask Control에 '.'을 찍으면 다음 클래스에 밀려 찍히는 문제에 대해 해결해 보고자 합니다. 첫시도는 OnPropertyChanged를 이용해 한글자 한글자 검사하는 방법을 사용하려 했으나 생각처럼 되지 않네요. 그러다가 의외로 간단한 방법을 찾았습니다. 함께 보시죠. 생각은 간단합니다 '.'키를 인식하게 하되, TextBox에서 쓰이지는 못하게한다 입니다. 그렇기에 저는 TextBox에서 하나의 Event를 더 추가했습니다. 바로 PreviewTextInput 이벤트 입니다. PreviewTextInput은 TextBox에 숫자만입력받고자 할 때 많이 사용한 이벤트인데. 생각해보니 IP는 어차피 숫자만 들어가니 상관없습니다. 그러면 ..
-
[WPF] IP Address Mask Control 커스텀 이벤트 추가WPF 2021. 12. 20. 13:04
안녕하세요. 저번시간에 만들었던 IP Address 컨트롤에 이제 이벤트를 추가해보고자 합니다. 먼저 간단한 기능인 '.' 을 누르면 자연스럽게 다음 TextBox로 커서가 움직여지는 이벤트를 넣어보고자 합니다. 글을 읽다보면 느끼시겠지만 다른 문제가 발생합니다. 이건 추후에 더 수정해보고자 합니다. 먼저 만들어놓은 기존의 IP Control에서 TextBox에 'PreviewKeyDown'속성을 추가해주겠습니다. 하나의 이벤트를 생성하면 나머지 클래스가될 TextBox에서도 재활용 가능합니다. 앞에 Preview가 찍히는걸로 봐서는 '.'키를 눌렀을때 포커스가 다음 박스로 넘어가고 '.'이 찍히는 순서인걸 확인 할 수 있습니다. 코드입니다. 마지막 D클래스 부분은 PreviewKeyDown해도 넘어갈 ..
-
[WPF] IP Address Mask Control 커스텀 만들기WPF 2021. 12. 16. 12:51
안녕하세요. 오늘은 WPF의 TextBlock과 TextBox를 이용해 IP입력에 적합한 Control을 제작해 보고자합니다. Winform에서는 IP Address control를 지원해 줬던거 같은데 WPF는 요상하게도 없네요. 제 나름대로 간단하게 제작해 보겠습니다. 먼저 1차 XAML파일 작성입니다. 테두리효과를 다시주기위한 Border태그, 그리고 가로로 Control들을 세우기위한 StackPanel에 Orientation="Horizontal" 옵션을 주겠습니다. TextBox의 크기 역시 임의로 50씩 설정했습니다. 디자인 결과입니다. 이제 왼쪽 TextBox부터 A,B,C,D Class로 사용할 예정입니다. 이제 A,B,C,D클래스의 테두리(Border)선을 지우고 태그에 테두리선을 넣겠..
-
[WPF] MVVM을 이용한 PasswordBox사용WPF 2021. 11. 23. 18:00
안녕하세요. 오늘은 PasswordBox 컨트롤을 MVVM에 적용시켜보겠습니다. 기본적으로 TextBox 컨트롤과는 다르게 .text를 비밀번호를 가져올 수 없습니다. 그러나 Post로 요청을 날리거나 혹은 비밀번호 데이터가 필요할때가 있기에 사용합시다. 약간의 검색결과 기본적으로 PasswordBox는 데이터를 가져오는걸 지원하지 않는다고합니다. 참고 부탁드립니다. 1. xaml코드 작성 먼저 포르젝트 생성 후 xaml파일을 통해 PasswordBox를 생성합니다. 그리고 저는 비밀번호를 입력받는다는 가정으로 Button을 하나 생성하겠습니다. 실행 시 문자가 아닌 '*'표시로 작성되는걸 확인할 수 있습니다. 해당 부분을 이제 Binding해보겠습니다. 2. DelegateCommand 작성 및 Vie..