전체 글 (16) 썸네일형 리스트형 [C#] SubClass list 생성 WPF 앱을 만들때 ViewModel 을 생성하게 되는데 ViewModel을 쉽게 관리하기 위한 예제로 사용하기 좋다. 예를 들어 BaseViewModel이 있을때 BaseViewModel을 상속받은 MainVM, SubVM 등 ViewModel을 새로 작성할때마다 해당 VM을 생성하고 관리하는 코드를 만들어 주어야 한다. 하지만 하기 코드를 통해 BaseViewModel을 상속받은 VM 클래스만 작성해주면 알아서 생성 및 관리를 할 수 있게 된다. 코드 public class SuperClass { public void Print() { Console.WriteLine(GetType().Name); } } public class SubClassA : SuperClass { } public class S.. [WPF] CallerMemberName (Attribute) - Property 구현 C# 프로젝트를 하면서 어트리뷰트를 사용하는 경우가 거의 없는데 그나마 가장 유용하게 사용한 것이 바로 이 CallerMemberName이다. 해당 클래스를 통해서 너무나도 쉽게 구현되는 것이 있다. 바로 MVVM 패턴에서 뷰모델의 속성을 Notify 해주는 부분인데 보통 속성의 값이 변경되었을때 변경된 값을 UI에 반영해주기 위해서는 INotifyPropertyChanged 인터페이스를 구현하여 PropertyChanged 이벤트를 호출해줘야한다. 우선 PropertyChanged Event를 호출해주는 Property를 구현해보자. public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler .. [WPF] Messenger 구현 (MVVM) 처음 WPF 프로젝트를 다룰 때 MVVM 적용하는데 필요한 도구 중에 MVVMLight을 매우 유용하게 사용했습니다. 그 중에 Messenger 라는 클래스가 있는데 특정 Type을 기억해두고 해당 클래스를 Send와 Register를 통해 ViewModel간의 data 전달하는데 매우 유용하게 썼었던지라 해당 Messenger를 다른프로젝트에서 따로 아래와 같이 구현해보았습니다. 정확하게 동일하게 작동하는지는 알 수 없지만 직접 고민해서 작성했던 코드이고 현재까지 사용하는데 있어서 의도대로 작동하고있고 별다른 이슈도 없어서 나름 기록하고자 포스트합니다. public class Messenger { private readonly Dictionary _actions; private readonly List.. [WPF]WndProc - 윈도우메시지 처리 적용 [MainViewModel.cs] private void ExeWindowLoaded(RoutedEventArgs e) { if (e.OriginalSource is Window wnd) { WindowInteropHelper helper = new(wnd); HwndSource source = HwndSource.FromHwnd(helper.Handle); source.AddHook(new HwndSourceHook(WndProc)); } } MainView의 Window에 Loaded 이벤트에 해당 함수를 추가해준다. private IntPtr WndProc(IntPtr hWnd, int nMsg, IntPtr wParam, IntPtr lParam, ref bool handled) { uint WM.. [WPF] 모든 에러 발생시 이벤트 발생시키기 [App.xaml.cs] public partial class App : Application { public App() { AppDomain.CurrentDomain.FirstChanceException += FirstChanceException; } private void FirstChanceException(object sender, System.Runtime.ExceptionServices.FirstChanceExceptionEventArgs e) { MessageBox.Show(e.Exception.Message); } } 무슨 에러가 됐든지간에 에러가 발생하면 해당 코드로 먼저 들어온다. [C#] Logger Python의 Logging 기능을 따라했고 C# 프로젝트에 로그 기능을 넣을때 쓴 모듈. [LogRecord.cs] using System; namespace Hico.Logging { public class LogRecord { #region Properties public string Name { get; set; } public LogLevel Level { get; set; } public string Message { get; set; } public int LineNumber { get; set; } public string Path { get; set; } public DateTime Time { get; set; } #endregion } } [IHandler.cs] namespace H.. [WPF] LED Light UI 코드 [ColorLightControl.cs] using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media; namespace Hico.Desktop.CustomControl { public class ColorLightControl : Control { public ColorLightControl() { SizeChanged += ColorLightControl_SizeChanged; } private void ColorLightControl_SizeChanged(object sender, SizeChangedEventArgs e) .. [프로그래머스] 주식가격 - 스택(C++) 문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. #include #include #include #include using namespace std; vector solution(vector prices) { vector answer(prices.size()); iota(answer.rbegin(), answer.rend(), 0); stack s; for (size_t i = 0; i < prices.size(); i++) { while.. 이전 1 2 다음