닷넷
-
WPF DevExpress LayoutPanel의 header에 custom button 놓기닷넷/WPF 2024. 4. 22. 15:58
DevExpress LayoutPanel의 header에 custom button 놓기 참고 자료 https://supportcenter.devexpress.com/ticket/details/t919567/add-new-buttons-to-layoutpanel-header-that-has-look-and-feel-of-pin-and-close-buttons https://docs.devexpress.com/WPF/DevExpress.Xpf.Docking.LayoutPanel https://docs.devexpress.com/WPF/DevExpress.Xpf.Docking.LayoutPanel._members https://docs.devexpress.com/WPF/DevExpress.Xpf.Docking..
-
C# WPF, WinForm DevExpress GridControl 붙여넣기 기능닷넷/WPF 2024. 4. 22. 15:49
devexpress GridControl에 복사한 것 붙여넣기 Clipboard 관련 1. WinForm https://docs.devexpress.com/WindowsForms/DevExpress.XtraGrid.Views.Grid.GridView.ClipboardRowPasting 2. WPF 1) 클립보드 데이터를 그리드컨트롤 칼럼과 로우에 맞춰서 데이터 들어가는 형식으로 전달 받아 사용 할 수 있음, 붙여넣기 아예 취소 가능 https://docs.devexpress.com/WPF/DevExpress.Xpf.Grid.TableView.ClipboardRowPasting 2) 붙여넣기 완료 후 데이터별 처리할 때 https://docs.devexpress.com/WPF/DevExpress.Xpf.G..
-
WPF Binding Path에 관하여 (바인딩 경로)닷넷/WPF 2024. 4. 8. 22:02
2023.04.07 - [닷넷/WPF] - C# WPF에서 Binding(바인딩)이란? C# WPF에서 Binding(바인딩)이란? WPF에서는 MVVM 패턴을 지키는 게 중요합니다. 개인적으로 생각하기에는 이 MVVM 패턴대로 만들지 않을 것이라면 개발 속도로 봤을 때나 유지보수 적으로 봤을 때나 그냥 윈폼(WinForms)으로 만드는게 jasmintime.com 이전글을 통해서 WPF에서 데이터 바인딩은 UI 요소와 데이터 소스 간의 연결을 쉽게 설정할 수 있는 기능임을 알 수 있습니다. 이 바인딩을 잘 쓰기 위해서는 바인딩 구문을 아는 것이 중요합니다. 그 중에서 바인딩 경로는 몇 가지 유형이 있으며, 경로 지정을 어떻게 하느냐에 따라서 자기 자신의 뷰모델이 아닌 부모 요소 혹은 그 외 기타와 연결..
-
C# 윈폼에 아키텍처 패턴을 적용해보자! (feat. MVP, MVVM)닷넷/WinForms 2024. 2. 22. 22:26
공장에서 윈폼을 하다보면 객체지향 언어인 C#을 절차적인 언어처럼 쓰고, 막 주먹구구식으로 쓰는 경우가 태반일 것이다. 그러다 보면 유지보수가 너어무 힘들어서 윈폼 자체에 노이로제가 걸릴 수도 있다. 그러나! C#의 윈폼도 엄연히 C#의 프레임워크 중 하나인 것 뿐인데, C#은 객체지향 언어인데, 윈폼도 객체지향 적으로 짤 수는 없는 것일까? 수월한 유지보수를 위한 아키텍처 패턴과 디자인 패턴을 적용할 수 없는 것일까? 정답은 가능하다! 객체지향 적으로 짜기 위해 객체지향 설계 5원칙을 따르면 되기는 하나, 통용적인 패턴을 이용하면 보다 쉽게 짤 수가 있다. 여기서는 아키텍처 패턴을 적용 해보는 것에 대해서 설명하고자 한다. 1. 아키텍처 패턴이란? 아키텍처 패턴은 소프트웨어 설계에서 반복적으로 발생하는..
-
닷넷 개발자 로드맵 2024 (.NET Developer Roadmap 2024.)닷넷 2024. 1. 3. 13:02
Dr Milan Milanović님이 작성한 닷넷 엔지니어가 되기 위한 단계적 로드맵, 2024년 버전. 간소화 버전 자세한 내용은 깃허브에서 확인 https://github.com/milanm/DotNet-Developer-Roadmap GitHub - milanm/DotNet-Developer-Roadmap: The comprehensive .NET Developer Roadmap by seniority level. The comprehensive .NET Developer Roadmap by seniority level. - GitHub - milanm/DotNet-Developer-Roadmap: The comprehensive .NET Developer Roadmap by seniority le..
-
C# WinForms DevExpress AccordionControl 사용하기닷넷/WinForms 2023. 8. 23. 11:50
DevExpress의 AccordionControl은 사용자 인터페이스(UI)에서 네비게이션 및 그룹화된 정보를 표시하기 위해 사용되는 강력한 컨트롤입니다. 이 컨트롤은 대시보드, 패널 어플리케이션, 설정 페이지 등에서 유용하게 활용될 수 있습니다. AccordionControl은 주로 다음과 같은 특징을 갖습니다. 1. 그룹화 및 네비게이션: AccordionControl은 요소들을 그룹화하여 각 그룹의 헤더와 본문을 함께 표시합니다. 사용자는 그룹의 헤더를 클릭하거나 펼침/접힘 아이콘을 클릭하여 해당 그룹의 본문을 표시하거나 숨길 수 있습니다. 2. 커스텀 뷰: 각각의 그룹은 커스텀 뷰를 가질 수 있으며, 텍스트, 이미지, 버튼, 그리드 등 다양한 컨트롤을 포함할 수 있습니다. 3. 컨텍스트 버튼: ..
-
C# WPF DataGrid에 Row번호 출력 되는 칼럼 추가하기 (닷넷프레임워크 .net framework 4.0 기준)닷넷/WPF 2023. 8. 10. 14:58
닷넷5.0 이상 기준으로는 https://kaki104.tistory.com/808 DataGrid에 Row번호를 출력하기 별도의 3rd party 컨트롤을 사용하지 않는 경우 DataGrid를 많이 사용하는데, RowNumber를 출력하는 방법을 찾아보니 MVVM pattern에서 사용하기 쉬운 방법에 대해서 설명되어 있는 것이 없는 것 같아서 간 kaki104.tistory.com 이 글을 참고 하면 되지만, 닷넷프레임워크 4.0에서는 Microsoft.Xaml.Behaviors.Wpf 1.1.39를 설치할 수 없기 때문에 다음의 두 가지 방법이 있습니다. 비하인드 코드에서 /// /// ListDetail.xaml에 대한 상호 작용 논리 /// private void Loaded(object sen..
-
Microsoft의 Text-to-Speech (TTS), Azure Cognitive Services를 C#에서 사용하는 방법닷넷/C# 2023. 7. 27. 10:07
TTS는 텍스트를 음성으로 변환시켜주는 기술이며, 이것을 서비스하고 API로 만든 회사들이 꽤 많이 있다. 그 중에서 Microsoft에서 제공하는 TTS를 사용하는 방법과 C#에서 적용하는 방법을 설명한다. Azure 사이트에서 1. 사이트 접속 및 계정 로그인 https://azure.microsoft.com/ko-kr/products/cognitive-services/text-to-speech Text to Speech – 현실적인 AI 음성 생성기 | Microsoft Azure AI 음성 생성기를 사용하여 합성된 음성을 사용하여 자연스럽게 말하는 앱 및 서비스를 빌드합니다. 텍스트 판독기 및 텍스트 음성 변환 기능을 사용하여 고객의 몰입도를 높일 수 있습니다. azure.microsoft.com..
-
C# Interlocked.Increment에 대한 고찰닷넷/C# 2023. 7. 20. 10:33
DB에서 인덱스를 자동증가 시키는 칼럼을 만들 수 있는 것처럼 C#에서 하나의 프로퍼티를 자동증가 인덱스로 만든 방법이 없을까 고민해보다가 챗GPT가 알려준 방법인 Interlocked.Increment를 사용했었다. 첫 번째 방법, 생성자에서 초기화 public class Info { // ... existing properties ... private static int currentIndex = 0; public int Index { get; } public Info() { Index = Interlocked.Increment(ref currentIndex); } } 두 번째 방법, 리스트에 추가할 때 인덱스 값 설정 public class Info { // ... existing propertie..
-
WPF Converter (컨버터, 값 변환기)닷넷/WPF 2023. 6. 9. 15:06
Converter WPF에서 Converter는 WPF의 핵심 기능 중 하나인 데이터 바인딩에서 데이터를 바인딩하는 동안 값의 변환을 수행하는 데 사용되는 기능입니다. Converter를 사용하면 데이터를 원하는 형식으로 변환하거나, 값을 가공하여 UI 요소에 표시할 수 있습니다. 예를 들어, bool 값을 "예" 또는 "아니오"로 변환하거나, 숫자를 포맷팅하거나, 날짜 형식을 변경하는 등의 작업을 수행할 수 있습니다. 사용방법 Converter는 IValueConverter 또는 IMultiValueConverter 인터페이스를 구현하는 클래스로 작성됩니다. IValueConverter는 단일 값을 변환하는 데 쓰이며, IMultiValueConverter는 여러 값을 조합하여 변환하는 데 쓰입니다. ..
-
C# 기초지식, 정보 정리 (면접 질문 대비, 꼭 알아야 하는 것)닷넷/C# 2023. 4. 11. 18:38
미루고 미루었던, ChatGPT를 활용하면 좀 더 수월하게 작성할 수 있게 되었으므로, C#에 대해서 꼭 알아야 할 기초 지식과 정보를 정리하였습니다. (링크드인 C# 테스트를 오늘 해 봤는데 영어 독해를 잘 못 했다고 해도, 그 용어들에 대해 알았다면 쉬운 문제인데 정답을 맞추지 못한 문제들이 많아서 나의 부족을 깨닫고 다시 공부하고 정리할 겸 쓰는 건 안 비밀) 1. C#이란 C#(C-Sharp)은 Microsoft에서 개발한 객체 지향 프로그래밍 언어입니다. Anders Hejlsberg가 설계한 이 언어는 C++와 Java와 유사한 구문을 가지고 있으며, 현대적인 프로그래밍 언어의 기능을 제공합니다. C#은 .NET Framework와 함께 사용되어 다양한 종류의 Windows 응용 프로그램 개발..
-
C# WPF에서 Binding(바인딩)이란?닷넷/WPF 2023. 4. 7. 18:17
WPF에서는 MVVM 패턴을 지키는 게 중요합니다. 개인적으로 생각하기에는 이 MVVM 패턴대로 만들지 않을 것이라면 개발 속도로 봤을 때나 유지보수 적으로 봤을 때나 그냥 윈폼(WinForms)으로 만드는게 낫습니다. 따라서 바인딩은 MVVM 패턴을 지키며 WPF에서 애플리케이션을 만들 때 중요한 요소가 됩니다. 왜냐하면 WPF에서 바인딩(Binding)은 데이터 소스와 UI 요소 간의 연결을 뜻하기 때문입니다. 즉, 뷰와 뷰모델의 연결점입니다. 바인딩을 사용하면 소스의 데이터가 변경될 때 UI가 자동으로 업데이트되고, 반대로 UI에서의 변경 사항이 소스에 전달됩니다. 이렇게 함으로써 데이터와 UI 간의 동기화가 유지되어 개발자가 수동으로 UI를 업데이트할 필요가 없습니다. WPF에서는 XAML (eX..
-
C# 시간 계산 두 번 째 (TimeSpan, DateTimeOffset)닷넷/C# 2023. 4. 6. 10:54
2020.09.11 - [C#] - C# 시간 계산 (DateTime Add함수 월, 일, 시, 분 더하기 빼기) DateTime 형식일 때, DateTime의 Add함수를 이용 한 날짜, 시간 계산은 이전 글을 참고한다. DateTime, TimeSpan, DateTimeOffset을 사용하여 시간 계산을 수행하는 방법은 다음과 같다. using System; namespace DateTimeExample { class Program { static void Main(string[] args) { // 현재 시간 구하기 DateTime currentTime = DateTime.Now; Console.WriteLine($"현재 시간: {currentTime}"); //////////////////////..
-
C# JSON 파일 읽기/쓰기 (Deserialize/Serialize)닷넷/C# 2023. 4. 4. 16:02
2018.10.26 - [C#] - C# Json 파싱하기 전, 비주얼스튜디오 프로젝트에 Newtonsoft.Json 설치하기 2018.10.31 - [C#] - C# JSON 파싱하기 예전에 JSON 파일을 읽고 쓰는 것 보다 파싱하는 것을 먼저 작성을 했었는데 JSON 파일을 읽고 쓰는 방법은 다음과 같습니다. 1. Newtonsoft.Json 라이브러리를 사용하여 JSON 파일을 읽고 쓰는 방법 1) JSON 파일 읽기 using System.IO; using Newtonsoft.Json; // JSON 파일 경로 string filePath = "example.json"; // 파일 읽기 using (StreamReader r = new StreamReader(filePath)) { string ..