C#

    [C# - WPF] View Binding 자동 완성 방법, F12로 ViewModel 타고 가기

    안녕하세요, 반나무입니다.이미 많은 분들이 알고계시겠지만 View에서 F12를 눌러서 ViewModel로 타고 넘어가는 방법을 소개 해드리려고 합니다. 해당 방법은 정확히는 View에 DataContext를 연결하는 방법입니다. 기본적으로는 예시와 같은 코드가 있다고 할 때, Binding된 값에 F12를 누르면 아래와 같이 나옵니다. 그 이유는 Binding 프로퍼티만 치면 Path=가 생략되기 때문에 원래는 저 모양이라 그렇습니다.  코드를 아래 처럼 두줄 추가 해 줍니다.(내용은 이 글을 보시는 분들 마다 다 다릅니다) Line 7 : 사용할 네임스페이스 작성Line 8 : d:DataContxt를 해당 네임스페이스의 MainViewModel Class로 설정(이건 제..

    [C# - Prism] 프리즘 예제 22 - ConfirmCancelNavigation

    안녕하세요, 반나무입니다. 이번 예제는 현재 View에서 다른 View로 Navigation을 할지 확인하는 작업을 합니다. 해당 기능을 사용하기 위해선 IConfirmNavigationRequest를 사용합니다. public void ConfirmNavigationRequest(NavigationContext navigationContext, Action continuationCallback) { bool result = true; if (MessageBox.Show("Do you to navigate?", "Navigate?", MessageBoxButton.YesNo) == MessageBoxResult.No) result = false; continuationCallback(result); } 예..

    [C# - Prism] 프리즘 예제 21 - PassingParameters

    안녕하세요, 반나무입니다. 이번예제는 Navigation을 사용 할 때 파라미터를 넘겨주는 예제입니다. 처음에는 아무것도 없다가, item들을 선택 할 때마다 하단의 TabControl에 View들이 추가되는것을 확인 할 수 있습니다. PersonListViewModel.cs 파라미터를 넘겨주기위해서는 아무 타입이나 넘길 수 없으며, NavigationParameters 클래스를 만들고 해당 클래스 내부의 Dictionary 타입에 값을 Add해야합니다. private void PersonSelected(Person person) { var parameters = new NavigationParameters(); parameters.Add("person", person); if (person != nul..

    [C# - Prism] 프리즘 예제 20 - NavigateToExistingViews

    안녕하세요, 반나무입니다. 이번 예제는 Navigate될 때 View가 이미 존재하는지 확인하는 예제입니다. 예제를 실행시켜보면 Navigate to View A클릭시 ViewA가 추가되는데 3개를 넘으면 새 View가 추가됩니다. (View B도 마찬가지입니다.) 다른 부분 코드는 대부분 비슷하며, IsNavigationTarget만 다르게 사용중 입니다. IsNavigationTarget은 기존 View를 사용할지, 새로 View를 출력할지 결정합니다. ViewAViewModel private int _pageViews; public int PageViews { get { return _pageViews; } set { SetProperty(ref _pageViews, value); } } publi..

    [C# - Prism] 프리즘 예제 19 - NavigationParticipation

    안녕하세요, 반나무입니다. 이번 예제는 NavigationParticipation 예제입니다. 예제코드들을 보다보면 영어공부를 더 많이 하게 되는것 같습니다. Participation = 참여 뜻을 직역하자면 네비게이션 참여. 코드를 보고, 예제를 확인해보면 단순히 Region을 Navigate하기보단 해당 Region에 직접 참여해 조작하는 모습을 볼 수 있습니다. NavigationParticipation CommandParameter를 통해 ViewA와 ViewB를 Region에 Navigate하는 부분이있습니다. Navigate to View A Navigate to View B private void Navigate(string navigatePath) { if (navigatePath != n..