본문 바로가기

전체 글

(45)
[WPF] ViewModel이 아닌 다른 클래스의 속성에 바인딩하기 WPF로 개발을 하다 보면 종종 DataContext로 지정될 ViewModel 객체가 아닌 다른 클래스로부터 데이터를 가져와야 하는 상황이 발생할 수 있다. 아래 코드를 보자. namespace MyProject.Core { public class ObjectManager : BindableBase { private static ObjectManager _instance; public static ObjectManager Instance => _instance ??= new(); private string _myString = string.Empty; public string MyString { get => _myString; set => SetProperty( ref _myString, value )..
[WPF] DependencyProperty에 대해서 - RelativeSource 사용하여 Binding하기 앞선 글에서 DependencyProperty를 사용하여 UserControl의 코드비하인드에 정의한 사용자 정의 속성에 바인딩을 해보았다. [WPF] DependencyProperty에 대해서 WPF에서 속성과 속성 간의 Binding을 통해 데이터를 View로 가져오거나 ViewModel로 보낼 수 있음을 앞선 글에서 알아보았다. 이러한 Binding이 이뤄지기 위해서는 반드시 필요한 조건이 있는데, Binding 하 cs-solution.tistory.com 바인딩을 하기 위해 PropertyMetadata에 PropertyChangedCallBack 메서드를 사용하여 사용자 정의 속성값이 변경되었을 때 각 컨트롤에 변경된 값들을 직접 지정해줬음을 기억할 것이다. 이번 글에서는 PropertyCha..
[C#] 문자열 05 - IndexOf() 문자열 찾기 String 클래스의 IndexOf() 메서드로 문자열 내에서 특정 문자 또는 부분 문자열이 시작되는 위치를 찾을 수 있다. string.IndexOf(string) - 문자열 내에서 지정된 문자열이 처음 등장하기 시작하는 인덱스를 반환한다. 문자열이 등장하지 않을 경우 -1을 반환한다. 자매품으로 string.IndexOf(char)도 가능하다. // 14 출력 Console.WriteLine("When you have faults, do not fear to abandon them.".IndexOf("faults").ToString()); // -1 출력 string str = "Age is no guarantee of maturity."; Console.WriteLine(str.IndexOf("th..
[WPF] XAML 코드 상에서 DataContext 지정하기 보통 ViewModel을 XAML 코드 상에서 지정하기 위해 ViewModel의 네임스페이스를 상단에 xmlns로 참조해주는 과정을 거쳐야 한다. 그러나 어차피 ViewModel의 네임스페이스는 DataContext를 지정할 때 한 번만 사용되며 이후로는 사용될 일이 딱히 없다. 이러한 경우 아래와 같이 1회성 네임스페이스 참조 구문을 사용할 수 있다. 먼저 임의의 네임스페이스를 사용한 다음, 뒤쪽에 바로 이어서 해당 네임스페이스의 세부 경로를 지정해주면 된다.
[WPF] Binding 기초 Binding이란, WPF에서 XMAL 코드로 구현된 View와 DataContext로 사용될 ViewModel이 데이터를 상호 의존하지 않고 주고 받을 수 있도록 해주는 기능이다. 각 계층간의 분리가 핵심인 MVVM 디자인 패턴을 적용하기 위해 필수적인 요소라고 할 수 있다. MVVM에서의 Binding에 대한 자세한 설명은 아래 글에서 이미 다루었으므로 이번 글에서는 Binding의 간단한 사용법에 대해서만 정리하고자 한다. [.NET Framework/WPF] - [WPF] MVVM 디자인 패턴 (2) [WPF] MVVM 디자인 패턴 (2) 지난 포스트에서 첨부했던 코드를 분석해보자. MVVM 디자인 패턴의 세 가지 핵심 요소를 중점으로 보려고 한다. 1. Binding Binding은 MVVM의 ..