Group을 추가하는 방법에 대해서 검색해보면 대부분 Code를 이용해서 CollectionViewSource를 생성해서 사용하는 방법이 나오고, MVVM Pattern에서는 어떻게하는지 잘 나오지 않습니다. 그래서, CollectionViewSource에 대해서 간단히 알아보고, MVVM Pattern에서는 어떻게 사용하는지 알아보도록 하겠습니다. 1. CollectionViewSource CollectionView클래스의 파생된 클래스로, CollectionView 속성을 설정하고, 설정된 기본 보기를 다른 컨트롤에 전달할 수 있는 기능이 있습니다. 정리를 하자면, 컨틀로과 뷰모델 사이에 CollectionViewSource 인스턴스가 하나더 있으면서, Sort, Filter, Group을 원본 데이..
Visual Studio로 개발하는 분들 중은 c# 코딩 중 prop 치고 Tab키를 두번 누르면 어떻게되는지 아실 것이라고 생각합니다. 그렇쵸? 그래도, 혹시 모르는 분도 있을 수 있으니 아래 이미지를 추가하겠습니다. 아래 이미지처럼 입력하면 인텔리센스에 의해서 드롭다운 팝업이 출력되면서 prop와 관련된 녀석들이 나오는데, 여기서 탭키를 두번 눌러주면 아래처럼 프로퍼티를 쉽게 정의할 수 있는 코드가 생성됩니다. 여기서 int를 그냥 사용하실려면, tab 아니고, 문자열로 바꾸실려면 str치고 탭, 탭 눌러주시면 string으로 변경되면서 커서가 MyProperty로 이동합니다. 그러면 프로퍼티명을 입력하고 엔터를 치면 하나의 프로퍼티가 만들어 집니다. 참 쉽죠? 이렇게 코드를 하나의 몇개의 글씨를 이..
2022.02.21 - [WPF] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 part1 이번 포스팅에서는 Frame에서 Navigiation하는 방법에 대해서 설명하고 코드를 작성해 보도록 하겠습니다. 1. FrameBehavior ViewModel에서 Frame를 직접 컨트롤을 하기는 어렵습니다. Frame의 Navigate() 메소드와 각종 이벤트들을 사용해야 하기 때문인데, 이렇게 뷰모델에서 직접 접근을 하기 어려운 컨트롤이나 컴포넌트를 쉽게 제어하고 사용하기 위해서는 Behavior을 만들어 주어야 합니다. FrameBehavior.cs 작동 방식은 FrameBehavior에 추가한 NavigationSource DP를 ViewModel의 프로퍼티와 바인딩을 한 후 V..
별도의 3rd party 컨트롤을 사용하지 않는 경우 DataGrid를 많이 사용하는데, RowNumber를 출력하는 방법을 찾아보니 MVVM pattern에서 사용하기 쉬운 방법에 대해서 설명되어 있는 것이 없는 것 같아서 간단하게 만들어 보았습니다. 특히, Sort했을 때, Row 추가, 삭제될 때도 계속 번호를 유지 할 수 있으니 개발하실 때 참고하시면 좋을 것 같습니다. 제가 사용한 방법은 Behavior을 이용합니다. Adding right-aligned row numbers to a DataGridRowHeader in WPF | Magnus Montin Adding right-aligned row numbers to a DataGridRowHeader in WPF This post provi..
2022.04.21 - [WPF .NET] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 part6 - 유효성 검사 추가 2022.03.11 - [WPF .NET] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 part5 - 금액 표시 컨트롤 만들기 2022.03.03 - [WPF .NET] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 part4 - LayerPopup 추가 2022.03.02 - [WPF .NET] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임워크 part3 - Busy 화면 구현 2022.02.24 - [WPF .NET] - Microsoft.Toolkit.Mvvm을 이용한 간단한 프레임..
ListView에 View 프로퍼티에 넣어서 사용할 CustomView를 만들고, 사용하는 방법에 대해서 알아 보겠습니다. Microsoft Docs에 있는 문서를 보시려면 여기를 참고하시기 바랍니다. 1. PlainView Custom Control 추가하기 프로젝트 팝업 메뉴 -> Add -> New Item -> WPF -> Custom Control(WPF)를 선택 후 Name에 PlainView를 입력하고 Add를 클릭합니다. 빨간 테두리 부분의 Themes/Generic.xaml과 PlainView.cs 파일이 추가됩니다. 이전 포스트에서 리소스 딕셔너리는 App.xaml에서 연결시켜 주어야 하지만, Generic.xaml은 그렇게 할 필요가 없이 자동으로 프로젝트에 로딩 됩니다. 2. Pla..
WPF에서 목록형 데이터를 출력하는 대표적은 방법은 ListBox, DataGrid,, ListView 이렇게 3가지를 이야기할 수 있습니다. 각 컨트롤의 기본적인 특징을 알아보겠습니다. ListBox는 목록을 간결하게(1개의 프로퍼티) 표현하기 위해서 사용합니다. 물론, ItemTemplate를 이용해서 모든 데이터를 다 출력할 수도 있습니다. DataGrid는 목록을 출력하고 편집하는 용도로 사용합니다. IsReadOnly가 true라면 단순 출력용으로도 사용할 수 있습니다. ListView는 DataGrid와 ListBox의 중간 형태로, 여러개의 컬럼을 보기 좋게 표현할 수 있습니다. 다만, 다른 2개의 컨트롤과 큰 차이점은 ListView.View라는 프로퍼티를 통해서 보이는 방식을 완전히 다른..
리소스 딕셔너리는 WPF 내부에서 사용할 수 있는 거의 모든 자원들을 인스턴스 시켜서 사용할 수 있습니다. 여러가지 활용 사례를 살펴 보도록 하겠습니다. 0. 한계 리소스 딕셔너리 파일 하나의 크기는 5000라인을 넘기지 않는 것이 좋습니다. 5000라인이 넘어가면 리소스를 처리하는데 성능지연이 발생합니다. 그래서, 5000라인 이하의 리소스 딕셔너리 파일 여러개를 사용하는 것이 좋습니다. 1. SolidColorBrush 코드로 SolidColorBrush를 생성해서 사용할 수도 있지만, 리소스로 하나를 만들어 놓고 모든 화면에서 활용할 수도 있습니다. 2. BitmapImage 이미지를 BitmapImage 리소스로 등록한 후에 여러 화면에서 호출해서 사용할 수 있습니다. 사용시 유의 사항은 Bitm..
- Total
- Today
- Yesterday
- #MVVM
- WPF
- Bot Framework
- IOT
- .net
- Build 2016
- kiosk
- Always Encrypted
- visual studio 2019
- #uwp
- Visual Studio 2022
- PRISM
- #prism
- ef core
- #Windows Template Studio
- UWP
- uno platform
- Behavior
- uno-platform
- .net 5.0
- dotNETconf
- windows 11
- Microsoft
- XAML
- C#
- MVVM
- Cross-platform
- ComboBox
- LINQ
- Windows 10
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |