전체 글

· WPF/xaml
AlternationCount 속성을 사용하여 DataGrid의 Rows에 교대로 반복되는 배경색을 설정할 수 있습니다. 사용하는 속성은 DataGrid의 AlternatingRowBackground, AlternationCount, RowBackground 입니다. ✅ AlternationCount xaml AlternatingRowBackground 속성으로는 두 가지 배경색만 사용이 가능하기 때문에 AlternationCount의 속성에 값을 3 이상은 사용하지 않는 것이 좋습니다. 세 가지 색 이상을 사용하는 방법은 다음 포스팅에서 다루겠습니다. ✅ AlternationCount 속성 - 끝 관련 포스팅 DataGrid: 배경색으로 Row를 구분하는 간단한 방법 #2
· C#
프로그램의 특정 구간의 성능 또는 알고리즘의 성능 측정이 필요한 경우가 있습니다. 보통 시간을 측정하는데 C#에는 시간을 측정하는 다양한 함수들이 있습니다. 그중에서 대표적인 세 가지 (DateTime.UtcNow.Ticks, Stopwatch, Environment.TickCount) 에 대해 알아봅니다. ✅ 처리 속도 측정 방법 세 가지 DateTime.UtcNow.Ticks UTC 시간을 사용하여 측정하는 방식입니다. Tick 은 1초를 10억 개로 나눈 것으로 정밀한 측정이 가능합니다. 현재 시간을 사용하기 때문에 성능 오버헤드가 매우 낮습니다. DateTime.Now 와 유사하지만 UTC 시간대를 사용하므로 지역 문제가 없습니다. 단점 시스템의 현재 시간을 가져오는 것으로 시간을 변경하거나 타임..
· WPF
MVVM 패턴에서는 Command 속성에 Binding을 해야만 클릭 시 ViewModel로 이벤트가 전달됩니다. Command 속성은 ICommand Type으로 ViewModel 역시 ICommand Type의 객체를 생성하여 Binding 합니다. Button을 예를 들어 코드를 작성하겠습니다. ✅ Command Binding View 버튼을 생성합니다. Command 속성에 ButtonCommand를 Binding 합니다. ViewModel private RelayCommand _buttonCommand; public RelayCommand ButtonCommand { get { if (_buttonCommand == null) _buttonCommand = new RelayCommand(OnBu..
· WPF/xaml
주로 로그인 화면에서 필요한 기능이죠. 꼭 로그인 화면이 아니더라도 은근히 자주 쓰입니다. MVVM 패턴으로 구현 시 InputBinding 클래스를 사용하여 Command와 Binding 하는 코드입니다. ✅ MVVM 패턴에서 Enter 입력 시 Command 실행 InputBinding을 사용한 Command Binding KeyBinding 의 Gesture 발생 시 Command="{Binding CmdLogin}" 의 CmdLogin 이 호출됩니다. Command 속성의 Binding에 대해서는 [WPF] - MVVM 기초 - Command Binding 포스팅을 참고하세요. PasswordChanged 속성에 Codebehind가 쓰인 이유 PasswordBox의 Password 속성은 Sec..
· WPF
Label의 Content길이만큼 전체 Label의 Width를 변경하고 싶을 때. 쉬울 것 같지만 잠시 고민하게 되더군요. Converter를 사용해서 Content의 문자열 길이에 따라 Label의 Width가 변경되는 예제입니다. ✅ ContentWidthToWidthConverter ContentWidthToWidthConverter.cs public class ContentWidthToWidthConverter : IValueConverter { public object Convert( object value, Type targetType, object parameter, CultureInfo culture) { if (value.GetType() != typeof(string)) { retur..
· WPF
OnPropertyChanged는 MVVM 패턴으로 구현할 때 ViewModel > View 방향으로 값의 변경을 알리는 일반적으로 사용하는 구문입니다. 하지만 ViewModel의 prop의 set 코드 부분이 반복되면서 코드가 길어집니다. 다음은 조금 더 보기 좋게 만드는 방법입니다. ✅OnPropertyChanged2 일반적인 OnPropertyChanged 사용 예제 private bool _isTreeSelected; public bool IsTreeSelected { get => return _isTreeSelected; set { //if (_isTreeSelected != value) // 변경된 값만 업데이트하고 싶을 경우 //{ _isTreeSelected = value; OnProper..
YUNYUN3915
윤윤, DEV