WPF - MVVM (Model View ViewModel) 환율변환기 비트교육센터 고급과정 WPF를 끝으로 모든 수업이 끝났습니다. 워크샵도 다녀왔고 이제 다음주 부터는 팀프로젝트를 통한 협업을 진행합니다.. 많이 걱정도 되지만 좋은결과있었으면 좋겠습니다. 그럼 본문 내용 시작합니다. 디자이너는 View에 집중적으로 관심을가지며 디자인하고, 개발자는 로직, 내부에 집중적으로 관심을 가지며 개발을 해서 둘의 협업이 효율적으로 해주는 WPF(XAML,C#)에서 다시 유지보수가 쉽게하며, 설계자가 개발자가 올바른 코딩을 했는지 빠르게 확인할 수 있게 해주는 WVVM에 대해 알아봅시다. WVVM은 모델, 뷰, 뷰모델 이라는 뜻으로.. 간단히 말해서 화면에 표시할 뷰(UI)와 뷰에 표시되는 모델을 뷰모델이라고한..
WPF 실습#5 - DataGrid Binding 이번실습은 실습#4와 거의 동일한 방식의 코딩으로 진행됩니다. UI를 설명하자면 Search부분에서 검색한 타이틀이 바로 밑에있는 DataGrid에 표시되며, 선택하게되면 바로옆 Border영역에 디테일한 정보가 표시됩니다. 또한 디테일영역은 TwoWay로 변경시 내부 데이터도 동일하게 변경 가능합니다. 먼저 재믈(Xaml)코드를 설명하도록하겠습니다. 제가 보라색으로 지정한 영역은 Search영역 즉 검색을 가능하게 해주는 인터페이스영역입니다. 참고로 중요한 부분은 빨간색 밑줄을 쳐 놓았으므로 이부부만 확실히 이해한다면 이번 실습은 끝입니다. 여기서는 해당 텍스트박스의 내용이변하면 발생하는 TextChanged이벤트를 textBox_TextChanged로..
C# .net WPF끝내기 - 실습#4 (Collection Binding, 리스트바인딩) 저번에 이어서 실습내용 포스팅을 해보도록하겠습니다. 사용하는 책이 내용이 핵심내용만 추려져있어서 그런지 3일이면 실습을 끝낼 수 있더군요.. 업데이트는 주로 주말에 하니까 좀 더딘감이 없지 않은데 복습하는 차원에서 포스팅해보도록 하겠습니다. 리스트 바인딩(List Binding) 이번 포스팅에서는 리스트 바인딩. 즉 리스트박스에 컨테이너(리스트 등)를 바인딩시켜 보도록 하겠습니다. 그럼 가장먼저 바인딩에쓰일 자료구조에 담을 객체가 하나 필요하겠군요. 여기서는 Talk라는 객체를 만들고 해당 컬렉션에 Message객체를 담아서 바인딩을 시키는 구조입니다. Message객체는 간단하게 string형 멤버 센더와 컨텐츠..
WPF 사실상 3일만에 끝내기 - 실습#3 (ItemTemplate) 사실 실습2에이어서 실습3는 내용이 똑같다고 보시면됩니다.. 사실 실습3에서 할거를 제가 2에서도 해버리는 바람에 실습3가 좀 의미없게 되었는데.. 그래서 간단히 살펴보고 예제로 다른 추가학습을 할 수 있는 내용을 작성해 보도록 하겠습니다. 위와같이 Discussion 페이지를 추가하고 Grid설정을 위 xaml코드처럼 작성해주시기 바랍니다. 여기서 사용한 '*'은 남은 크기만큼 비율로 자동으로 설정된다는 뜻이며. 여기서는 열과 행의 별이 각각 하나이므로 남은 크기만큼 전부사용하게되겠죠. 만약에 *, 2* 이런식으로 총 *개수가 3개가 된다면, 1/3와 2/3 로 각각 비율대로 설정되게 됩니다. 1*은 *과 동일한 뜻입니다. Margi..
WPF 1주일만에 끝내기 - 실습 #2 NavigationService.Navigate 2번째 실습을 풀이해 보도록 하겠습니다. 이번에는 실습#1에서 만들었던 컨텍트페이지를 메뉴에 연동해서 동작시키도록 하겠습니다. 위와 같이 3개의 메뉴(버튼)가 존재하며 Email Support 버튼을 클릭하게 되면 실습1에서 만들었던 페이지로 이동되게 하면됩니다. 이때 페이지 이동기법은 예시로 인터넷 사이트에서 링크 클릭시 해당 페이지로 이동하는 것과 동일하다고 생각하시면되겠습니다. 일단 메뉴페이지를 추가해서 위와같이 드래그엔 드롭으로 버튼과 텍스트 블록을 추가해주시기바랍니다. 그리고 만얀에 실행한다면 크기가 자동으로 변환되지 않는 문제가 발생합니다. 그래서 위와 같이 코드를 작성해야합니다. Grid는 기본적으로 컨텐..
WPF MVVM 7일만에 배우기 - 실습#1 (page) WPF 일주일만에 끝내버리기 프로젝트.. 실습 넘버원 시작합니다. 위 연습문제는 BikeShop(자전거가게(?))라는 WPF어플리케이션 생성후 Contact.xaml 페이지를 추가하여 나타내준 모습입니다. Contact.xaml 파일에는 TextBox 2개와 TextBlock 2개가 존재합니다. WPF에서는 Winform과는 다르게 텍스트 박스 옆 설명 Text 등을 입력할 때 Label을 사용하지 않고 TextBlock을 사용하는 것을 염두에 두시기 바랍니다. MainWindow에 Contact파일을 띄우면 됩니다. 우선 솔루션에 Contact 페이지를 추가해주고 해당 재믈파일에 드래그엔 드랍으로 위와같이 디자인 해줍니다. (전 괜히 막 만지다가..
WPF - Data Binding (데이터 바인딩) INotifyPropertyChanged지금부터 설명하는(WPF)는 C#,html,sql 에 대한 기본적인 선행학습이 필요합니다. 앞서 설명한 데이터 바인딩은 사실 C#코드에서 데이터 원본을 바꿔주게 되면 UI에 업데이트가 되지 않는 문제점이있습니다. 이는 코드에서 데이터 변경시 UI에도 알림으로써 변경하도록 해주는 작업이 필요합니다. 놀랍게도 이 또한 이미 구현되어있습니다. 바로 INotifyPropertyChanged라는 인터페이스를 구현하면 되는데요? 어떻게 하면 되는건지 지금부터 살펴보도록하겠습니다. 프로퍼티변경시 알림은 위와 같이 인터페이스(interface)를 구현하면 되는데 INotifyPropertyChanged 인터페이스는 이벤트핸들러인..
닷넷(.NET) WPF - 데이터 바인딩 (Data Binding)본 포스팅의 목적은 복습하며 다시 이해하고, 기억상자(망각하면 다시 보고 이해하고 상기하기 위함) 입니다.바인딩이란 무엇일까요? 우선 bind의 뜻부터 보면 묶다,결속하다,연결하다 의 뜻이란것을 알 수 있습니다. WPF에서의 바인딩이란 간단히 말하면 원본데이터가 있고 그 원본 데이터와 화면에 나타난 UI가 서로 연결되어있다면, 원본 데이터가 바뀌면 UI의 내용도 바뀌어야하고 UI의 내용이 바뀌면 원본 데이터가 자동으로 바뀌어야. 즉 서로 동기화 되어야합니다. 이러한 동작을 자동으로 처리해주는 기능이 바로 WPF의 바인딩입니다.(bind, binding). 이 때 원본데이터는 바인딩소스, 바인딩원본 으로 표현되며, 연결된 UI는 바인딩타겟(..