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..
ResourceDictionary에 관해서 검색을 하다보니, Window.xaml에 리소스 딕셔너리를 추가하는 글을 보게되었습니다. 그런데, Window.xaml에 추가를 하면 그 화면 내부에서만 사용되지 애플리케이션 전체에서는 사용할 수 없는데.. 그 부분에 대한 설명이 없어서 간단하게 셈플을 만들었습니다. 1. 참고 https://docs.microsoft.com/ko-kr/windows/apps/design/style/xaml-resource-dictionary?WT.mc_id=DT-MVP-5000651 ResourceDictionary 및 XAML 리소스 참조 - Windows apps ResourceDictionary 요소와 키 입력 리소스를 정의하는 방법 그리고 앱 또는 앱 패키지의 일부로 정..
WPF에서 SQLite를 이용해야할 일이 있어서 옛날 포스트를 뒤져보니 너무 오래된 내용들이라 다시 포스팅을 하게되었습니다. 이모티콘 사용하는거 좋네요 ㅎㅎㅎ 1. Project Wpf .NET 5로 생성했습니다. Visual Studio 2022로 프로젝트를 생성하면 프로젝트 파일에 널 비허용 옵션이 들어가니 참고하시면 좋을 것 같습니다. 2. NuGet Package sqlite-net-pcl version 1.8.116 3. 작업 시작 셈플에서는 Northwind_large.sqlite를 이용합니다. Customer.cs 클래스는 Customer 테이블의 데이터 이용하기 위해 만들었습니다. SQLite database file을 미리 열어서 어떤 구조인지 알기 위해서는 툴이 필요합니다. Downlo..
다음 카페에 질문 올려주신 내용에 대해서 간단한 소스를 만들었습니다. 닷넷 (.NET) 프로그래머 모임 | MVVM과 combobox에 대한 질문드립니다. - Daum 카페 1. NuGet Packages Microsoft.Toolkit.Mvvm Microsoft.Xaml.Behaviors.Wpf 2. View (XAML) - Window.DataContext : 뷰모델을 뷰와 연결 시키고 있습니다. - xmlns:b="http://schemas.microsoft.com/xaml/behaviors" : Behavior를 사용하기 위한 네임 스페이스 입니다. - ComboBox는 Command 프로퍼티를 가지고 있지 않습니다. 그래서 ComboBox에서 발생하는 이벤트와 Command를 연결하기 위해서는 ..
WPF에서 기본 로컬라이징 방식은 x:Uid를 이용 합니다. 자세한 내용은 여기를 참고합니다. 그런데, 이 방법은 몇가지 불편한 부분이 있습니다. 예를 들어 "이름"을 로컬라이제이션 한다고 하면 이 "이름'이 Text 프로퍼티에 들어갈때와 Content 프로퍼티에 들어갈때 각각 정의를 해놓고 사용해야하는 부분과 ViewModel에서 직접꺼내 사용하기도 불편 합니다. 그래서 저는 DynamicResource라는 녀석을 만들어서 사용하고 있습니다. 그래서, 이번에 기존에 사용하던 클래스를 약간 수정을 하면서 실행되는 셈플 코드와 함께 공개하게 되었습니다. 여기에 Prism의 기능을 넣고, Telerik 컨트롤의 리소스까지 관리하기 위한 몇가지를 더 추가하면 완벽하게 사용하시는데 문제가 없을 것입니다. Dyn..
UWP에는 MenuFlyout이 있어서 버튼이나 특정 컨트롤에 넣어 놓으면 클릭했을 때 ContextMenu 처럼 자동으로 표시가 됩니다. 아래 이미지와 같이 표시가 됩니다. WPF에서 위와 비슷한 메뉴를 구성해 보았습니다. 그런데, 이 컨텍스트 메뉴는 마우스 오른쪽 클릭을 했을 때만 나오기 때문에, 왼쪽 클릭시에도 열리도록 만들기 위해 Behavior를 추가했습니다. 추가한 Nuget package는 Microsoft.Xaml.Behaviors.Wpf 입니다. XAML에 namespace를 추가하고 EventTrigger와 ChangePropertyAction을 이용해서 컨택스트 메뉴가 열리도록 수정했습니다. Telerik RadContextMenu를 이용하면 버튼 바로위에 이쁘게 메뉴를 출력할 수 있..
.NET Core WPF 프로젝트를 개발하다가, 현재 윈도우의 WorkingArea 정보를 확인 해야할 필요가 있어서 찾아보니 System.Windows.Forms.Screen을 이용해야 한다네요. .Net Framework 프로젝트에서는 Add Reference를 이용해서 System.Windows.Forms를 추가하면 되었는데, .NET Core에서는 추가 할 수가 없어서.. 다시 검색을 하니 아래와 같은 방법을 이용하면 된다고 합니다. 프로젝트 파일에 UseWindowsForms를 true로 지정하면 끝~ WinExe net5.0-windows true true 그래서 간단한 예제를 만들어 보았습니다. public partial class MainWindow : Window { public Main..
WPF 애플리케이션을 개발할 때 3rd party 컨트롤을 사용해서 디자인과 성능을 향상시키게 됩니다. Telerik, DevExpress, GrapeCity 등 여러회사들의 컨트롤이 있는데, 그 중에 Infragistics의 WPF 컨트롤에 대해서 살펴 보려고 합니다. WPF Ultimate UI | WPF Application & WPF Components | Infragistics WPF Ultimate UI | WPF Application & WPF Components | Infragistics Ultimate UI for WPF is a complete library of WPF user interface (UI) controls for building modern Microsoft-Office..
MVVM Toolkit nuget package를 이용하는 방법에 대해서 알아보도록 하겠습니다. 우선 MVVM-Samples 앱을 실행해서 같이 보시면 더 도움이 될 것입니다. windows-toolkit/MVVM-Samples: Sample repo for MVVM package (github.com) windows-toolkit/MVVM-Samples Sample repo for MVVM package. Contribute to windows-toolkit/MVVM-Samples development by creating an account on GitHub. github.com 프로젝트에 추가 가능한 NuGet package 버전은 Preview 4입니다. (2020/12/01) Preview버전이..
- Total
- Today
- Yesterday
- .net 5.0
- Visual Studio 2022
- windows 11
- .net
- ComboBox
- Microsoft
- Bot Framework
- UWP
- ef core
- MVVM
- visual studio 2019
- uno-platform
- Behavior
- uno platform
- C#
- Always Encrypted
- XAML
- #prism
- IOT
- Cross-platform
- dotNETconf
- PRISM
- #Windows Template Studio
- #uwp
- Windows 10
- WPF
- kiosk
- #MVVM
- LINQ
- Build 2016
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |