본문 바로가기

분류 전체보기289

C# Throw 발생 방법 C#에서 throw 키워드는 예외(Exception)를 발생시키는 데 사용됩니다. 특정 조건이 만족되지 않을 경우 예외를 던져 프로그램이 예외 처리 로직을 수행하도록 할 수 있습니다. 1. 기본적인 throw 사용 방법throw new Exception("에러가 발생했습니다!"); 2. 조건부 예외 발생 특정 조건을 검사하고, 필요할 때만 예외를 발생시키는 방법입니다.void ValidateAge(int age){ if (age 📌 throw new ArgumentException("메시지")를 사용하여 잘못된 인수에 대한 예외를 던질 수 있습니다. 3. 사용자 정의 예외 클래스 C#에서는 표준 예외 유형 외에도 사용자 정의 예외를 만들 수 있습니다.public class CustomExcepti.. 2025. 5. 13.
C# 폴더 내부 파일을 다른 폴더로 복사 C#에서 특정 폴더 내부의 파일을 다른 폴더로 복사하려면 System.IO 네임스페이스의 Directory 및 File 클래스를 사용할 수 있습니다. 다음은 폴더 내의 모든 파일을 복사하는 방법입니다. 1. 파일만 복사 (Directory.GetFiles 사용)using System;using System.IO;class Program{ static void Main() { string sourceFolder = @"C:\SourceFolder"; string destinationFolder = @"C:\DestinationFolder"; // 대상 폴더가 없으면 생성 if (!Directory.Exists(destinationFolder)) .. 2025. 5. 13.
C# Random 함수 사용 C#에서는 rand()라는 함수가 따로 존재하지 않지만, 난수를 생성할 때는 System.Random 클래스를 사용합니다. 1. 기본적인 난수 생성Random rand = new Random();int randomNumber = rand.Next(); // 0 이상 int.MaxValue 미만의 랜덤 숫자 생성Console.WriteLine(randomNumber); 💡 rand.Next()는 int 범위 내에서 난수를 생성합니다. 2. 특정 범위의 난수 생성 만약 1부터 100 사이의 난수를 생성하려면 다음과 같이 사용할 수 있습니다:int randomNumber = rand.Next(1, 101); // 1 이상 100 이하의 난수 생성Console.WriteLine(randomNumber); 💡.. 2025. 5. 13.
C# 선택한 폴더 안의 파일 및 폴더 삭제 방법 1. 선택한 폴더 안의 파일을 검색해서 삭제 후 폴더 삭제 방법using System;using System.IO;class Program{ static void Main() { string targetFolder = @"C:\ExampleFolder"; if (Directory.Exists(targetFolder)) { // 폴더 내 파일 삭제 foreach (string file in Directory.GetFiles(targetFolder)) { File.Delete(file); Console.WriteLine($"파일 삭제됨: {file}.. 2025. 5. 13.
WPF TreeViewItem Font 스타일 변경 방법 WPF 에서 TreeViewItem 글꼴 을 굵게 표시 하려면 XAML 에서 Style를 사용할 수 있습니다 . 방법은 다음과 같습니다 .​굵은 글꼴 스타일 적용​TreeViewItem Style를 정의하고 Setter 를 사용 하여 FontWeight 속성에 Bold를 설정할 수 있습니다 . 글꼴을 동적으로 굵게 만들기특정 조건 ( 예 : TreeViewItem이 선택된 경우 )에서만 글꼴을 굵게 표시 하려면 Trigger를 사용할 수 있습니다 .트리거를 사용한 예 : .. 2025. 4. 23.
WPF MVVM에서 Window Close 호출 방법 WPF MVVM에서 Window를 닫는 방법은 MVVM 패턴을 유지하면서 ViewModel에서 닫기 동작을 제어하는 방식으로 구현할 수 있습니다. 아래는 일반적인 접근 방법입니다:1. Action을 활용한 Window 닫기ViewModel에서 Action을 정의하고, View에서 이를 설정한 후 ViewModel에서 호출하는 방식입니다.ViewModelpublic Action CloseAction { get; set; }public ICommand CloseCommand { get; }public ViewModel(){ CloseCommand = new RelayCommand(ExecuteClose);}private void ExecuteClose(){ CloseAction?.Invoke();.. 2025. 4. 23.
DialogService 이용하는 방법 DialogService를 이용하면 MVVM 패턴에서 ViewModel과 View 간의 의존성을 줄이면서도 깔끔하게 MessageBox와 같은 다이얼로그를 처리할 수 있습니다. 아래는 DialogService를 구현하고 사용하는 예입니다:1. DialogService 인터페이스 정의먼저, 다이얼로그 동작을 추상화하는 인터페이스를 정의합니다.public interface IDialogService{ void ShowMessage(string message, string title);}2. DialogService 구현인터페이스를 실제로 구현하여 MessageBox를 호출하는 클래스를 작성합니다.using System.Windows;public class DialogService : IDialogSer.. 2025. 4. 23.
WPF MVVM 패턴을 이용한 프로그램에서 Messagebox를 실행할 경우 호출 스택에서 throw 발생하는 경우 WPF MVVM 패턴에서 Event 함수 내에서 MessageBox를 실행하는 중 호출 스택에서 오류가 발생한 이유는 보통 UI 스레드와 관련이 있을 가능성이 높습니다. MVVM 패턴에서는 데이터와 UI를 분리하여 ViewModel에서 UI 요소를 직접 제어하지 않도록 설계되었습니다. 그러나 MessageBox는 UI 요소를 직접 생성하기 때문에 문제가 발생할 수 있습니다. 주요 원인으로는 다음과 같은 경우를 고려할 수 있습니다: 1. UI 스레드 접근 문제: Event 함수가 비동기 작업(예: Task.Run() 또는 다른 비동기 메서드) 내에서 실행되고 있다면, MessageBox를 호출할 때 UI 스레드가 아닌 다른 스레드에서 접근하려고 해서 오류가 발생할 수 있습니다. 이 경우 Dispatcher.. 2025. 4. 23.
WPF Group에서 Category 또는 Group별로 표시 하는 방법 WPF DataGrid에서 그룹별로 데이터를 표시하려면 CollectionViewSource를 사용하여 데이터를 그룹화할 수 있습니다. GroupStyle을 적용하면 그룹별 헤더를 만들 수도 있습니다. 1. CollectionViewSource를 사용한 데이터 그룹화먼저, CollectionViewSource를 활용하여 데이터를 그룹화합니다. 위 코드에서 PropertyGroupDescription을 사용하여 "Category" 속성을 기준으로 그룹화합니다.2. DataGrid에서 그룹별 표시하기이제 DataGrid에 ItemsSource를 CollectionViewSource로 설정하고 GroupStyle을 사용하여 헤더를 표시할 수 있습니.. 2025. 4. 23.