안녕하세요, 반나무입니다.이번 예제는 RegionMember(view)의 Lifetime을 살펴보는 예제입니다. Region은 View를 다양하게 가질 수 있습니다.IRegionMemberLifetime.KeepAlive를 통해 Region에서 View가 변경될 시해당 View 인스턴스를 유지 할 지 말지 선택 할 수 있습니다.KeepAlive = false : 인스턴스 DisposeKeepAlive = true : 인스턴스 유지public class ViewAViewModel : BindableBase, INavigationAware, IRegionMemberLifetime{ public ViewAViewModel() { } public bool KeepAlive { get => fa..
안녕하세요, 반나무입니다. 이번예제는 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..
안녕하세요, 반나무입니다. 이번 예제는 NavigationCallback입니다. 앞선 예제에서 기본적인 Navigation기능을 살펴보았는데요, 이번 예제에서는 RequestNavigation에 Callback함수가 있는 예제입니다. BasicRegionNavigation MainWindowViewModel.cs NavigationComplete callback을 등록합니다. Navigate가 완료됨과 동시에 callback 함수를 실행합니다. private void Navigate(string navigatePath) { if (navigatePath != null) _regionManager.RequestNavigate("ContentRegion", navigatePath, NavigationComp..
안녕하세요, 반나무입니다. 이번 예제는 BasicRegionNavigation예제입니다. 간단히 풀면 어떤 Region에 원하는 View를 띄워주는 예제입니다. 프로그램 구조 프로그램 구조는 다음과 같습니다. BasicRegionNavigation : Shell ModuleA : View를 Register만 하는 Module MainWindow.xaml ViewA와 ViewB라는 string을 CommandParameter로 넘겨줍니다. Navigate to View A Navigate to View B MainWindowViewModel.cs MainWindow에서 전달받은 파라미터를 통해 ViewModel에서 ContentRegion을 Navigate합니다. private void Navigate(s..
안녕하세요, 반나무입니다. 이번 예제는 지난 예제에 이어서 EventAggregator를 사용합니다. Event를 Filtering해 원하는 Event만 사용 할 수 있게 하는 방법을 안내합니다. 다른 부분 코드는 동일하며 Event를 Subcribe(구독)하는 부분에서 코드가 다릅니다. ModuleB public class MessageListViewModel : BindableBase { IEventAggregator _ea; private ObservableCollection _messages; public ObservableCollection Messages { get { return _messages; } set { SetProperty(ref _messages, value); } } publi..