일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Microsoft
- ListView
- IValueConverter
- windows10
- Process
- chashtag
- WPF
- Github
- log
- nullable
- dotNET
- commit
- .net
- mysql
- csharp
- coding-test
- C#
- Coding
- algorithm
- git
- 코딩테스트
- logging
- programmers
- File
- convert
- windows
- string
- Binding
- tls
- Visual Studio
- Today
- Total
목록C# (73)
CHashtag

안녕하세요. 오늘은 https://chashtag.tistory.com/24 에 이어 비밀번호와 함께 압축, 압축을 푸는 방법에 대해 알아보도록 하겠습니다. [C#] 압축, 압축 풀기 (zip, unzip) 오늘은 폴더를 zip 파일로, zip 파일을 폴더로 만드는 방법에 대해 알아보겠습니다. 아래 코드를 구현하기 위해선 System.IO.Compression.FileSystem을 Reference에 추가하여야 합니다. static void Main(string[.. chashtag.tistory.com 위 링크에서는 System.IO.Compression 의 ZipFile Class를 사용했었는데요, 하지만 이 Class에서는 비밀번호를 이용해 zip, unzip 기능을 제공하지 않습니다. (참고링크:..

결론부터 알려드리겠습니다. Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" WPF 개발을 하다 보면 Binding이 실시간으로 되지 않는 것 같은 느낌이 들 때가 있습니다. 간단한 예를 들어보겠습니다. 최대 10자까지 입력이 가능한 작은 메모장을 하나 만들어 보겠습니다. 이 프로그램의 가장 중요한 요소는 10자 이상 넘어가지 않도록 하는 것입니다. (10자 이상 넘어갈 시 배경을 붉게 하여 표시해보도록 하겠습니다.) // OverTenToColorConverter.cs class OverTenToColorConverter : IValueConverter { public object Convert(object value, Type ta..

결론부터 알려드리겠습니다. 안녕하세요. 오늘은 ComboBox Control을 사용할 때 Source에 Converter를 적용하는 방법에 대해 알려드리려 합니다. 이해를 돕기위해 바로 예제 프로그램을 제작해 보도록 하겠습니다. 예제 프로그램 랜덤한 숫자가 담긴 리스트에 홀수 짝수 여부를 같이 붙여서 ComboBox에 보여지는 프로그램을 만들어보도록 하겠습니다. 관련하여 설명은 주석에 달아 두었으니 참고해주시면 됩니다. // MainWindow.xaml.cs using System; using System.Collections.Generic; using System.Windows; namespace WPF_ComboBox_Converter { /// /// Interaction logic for Main..

안녕하세요. 이전 게시글 (https://chashtag.tistory.com/77) 에서는 DatePicker에 대해 알아보았습니다. [C#] [WPF] MVVM패턴에서의 DatePicker 사용방법 안녕하세요. 오늘은 WPF에서 날짜를 선택할 수 있는 Control인 DatePicker에 대해 알아보고 간단한 MVVM패턴에서의 사용방법까지 배워보도록 하겠습니다. DatePicker DatePicker는 WPF기본 제공 Control입니다. ( chashtag.tistory.com 하지만 DatePicker는 년 월 일 까지만 선택이 가능하고 시, 분, 초는 선택이 불가능하다는 단점이 존재합니다. 그래서 오늘은 DateTimePicker에 대해 알아보려고 합니다. DateTimePicker DateTi..

안녕하세요. 오늘은 WPF에서 날짜를 선택할 수 있는 Control인 DatePicker에 대해 알아보고 간단한 MVVM패턴에서의 사용방법까지 배워보도록 하겠습니다. DatePicker DatePicker는 WPF기본 제공 Control입니다. (PresentationFramework.dll) https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.controls.datepicker?view=net-5.0 DatePicker 클래스 (System.Windows.Controls) 사용자가 날짜를 선택할 수 있도록 해주는 컨트롤을 나타냅니다.Represents a control that allows the user to select a date. docs.m..

폴더 내부의 모든 파일의 크기를 구하는 함수입니다. 단위는 byte입니다. public long GetDirectorySize(string path) { long size = 0; DirectoryInfo dirInfo = new DirectoryInfo(path); foreach (FileInfo fi in dirInfo.GetFiles("*", SearchOption.AllDirectories)) { size += fi.Length; } return size; }

// App.xaml.cs // 프로그램 시작, 종료 지점에 해당 코드를 삽입하여도 무방합니다. const string MUTEX_NAME = "SOME_UNIQUE_MUTEX_NAME"; Mutex mutex = null; App() { bool isNew; try { mutex = new Mutex(false, MUTEX_NAME, out isNew); if (!isNew) { Application.Current.Shutdown(); mutex = null; return; } } catch (Exception ex) { Application.Current.Shutdown(); } } /// /// 프로그램이 종료되기 전에 Mutex를 해제해주어야 한다. /// /// /// private void A..
C#에는 Attribute라는 유용한 친구가 있습니다. 그중 CallerMemberName을 사용하면 이 함수를 호출한 대상에 대한 이름을 인자로 받게 됩니다. 사용법은 다음과 같습니다. // Program.cs static void Main(string[] args) { SomeFunction(); // output : Main } public static void SomeFunction([CallerMemberName] string callerName = null) { Console.WriteLine(callerName); } 한가지 주의할 점은 default value를 지정해 주어야 한다는 점입니다. CallerMemberName외에도 CallerFilePath, CallerLineNumber도 ..
[DllImport("user32.dll")] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); C#에는 키보드 입력을 할 수 있는 함수들이 존재합니다. 오늘 소개할 keybd_event라는 함수는 user32.dll 에 내장된 함수로, low level의 키보드 인풋을 제공합니다. keybd_event에는 4가지 Arguments는 다음과 같습니다. // 가상 키 코드입니다. // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes byte bVk // 키의 하드웨어 스캔 키입니다. // https://stackov..

안녕하세요. 오늘은 파일을 업로드할 때 필요한 content-type을 파일의 확장자 별로 구하는 방법에 대해 알아보도록 하겠습니다. 다행히도 Windows에서는 해당 값에 대한 Mime-Type을 레지스트리 편집기에 정의해 두었습니다. 레지스트리 편집기에 들어가보면 여러 확장자에 대한 Content Type값이 들어있는 것을 확인하실 수 있습니다. (컴퓨터\HKEY_CLASSES_ROOT의 하위에는 .xxx와 같은 형식의 폴더가 많이 존재합니다.) 따라서 오늘은 이 값을 이용하여 확장자에 대한 mime-type(content-type)을 구해보도록 하겠습니다. 방법은 아주 간단합니다. 아래는 해당 값을 읽어오는 코드입니다. public string GetMimeType(string fileName) {..