wfp 개발을 하다보면, UserControl 을 수정해야할지...
Style 적용으로 Trigger 설정을 해야할지 막막할때가 참 많다.
어느쪽이 정답이라고 말할수는 없으나
현재 프로젝트의 성능을 고려했을때 가장 적합한 방법으로 사용하는것이 좋을듯하다.
이번에는 DependencyProperty 를 사용한 경우의 예를 간단하게 들어볼까한다.
예를들어, UserControl (Label / TextBox / DataGrid)를 가지고 있는 컨트롤이 하나 있다고 하자.
DependencyProperty 를 추가해서 사용하는 경우는 아래와같은 처리를 해야한다.
public static readonly DependencyProperty DataGridSelectionModeProperty = DependencyProperty.Register ( "DataGridSelectionMode", typeof(DataGridSelectionMode), typeof(UserControlDataGridBase), new FrameworkPropertyMetadata(DataGridSelectionMode.Extended, new PropertyChangedCallback(UserControlDataGridBase.OnDataGridSelectionModeChanged)) ); public DataGridSelectionMode DataGridSelectionMode { get { return (DataGridSelectionMode)GetValue(DataGridSelectionModeProperty); } set { SetValue(DataGridSelectionModeProperty, value); } } private static void OnDataGridSelectionModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { (d as UserControlDataGridBase).DataGridSelectionMode = (DataGridSelectionMode)e.NewValue; } |
여기서 외부공개용인 DataGridSelectionMode 를 View에서 설정하게 된다.
위의예는 DataGridSelectionMode 를 설정하는 DependencyProperty 이므로 상황에맞게 설정하면 되겠다.
'WPF' 카테고리의 다른 글
WPF C# 을 자동테스트하는 방법에대해 알아봅시다 (0) | 2023.05.20 |
---|---|
WPF에서 OAuth2.0 인증을 사용하는 방법 (0) | 2023.05.03 |
WPF에서 WebView2를 사용하는 방법 (0) | 2023.05.03 |
IE로 기동한 브라우져의 특정타이틀 페이지 종료시키기 (0) | 2016.07.20 |
TextBox 의 Enabled 설정시 배경색 지정문제 (0) | 2016.05.12 |