Beispiel #1
0
 protected internal override void AdaptToRegionTarget(INavigableRegion region)
 {
     AddDisposable(
         Observable
         .FromEventPattern <SelectionChangedEventArgs>(RegionTarget, "SelectionChanged")
         .Where(e => ReferenceEquals(e.EventArgs.OriginalSource, RegionTarget))
         .Where(_ => !_suppressSelectionChanged)
         .Where(_ => RegionTarget.SelectedItem != null)
         .Do(_ => region.RequestNavigate(RegionTarget.SelectedItem as ReactiveViewModel, NavigationParameters.UserNavigation))        // TODO: SelectMany?
         .Subscribe());
 }
        public void Adapt(INavigableRegion region)
        {
            if (region == null)
            {
                throw new ArgumentNullException("region", "region is null.");
            }

            _disposables.Add(region.Added.Do(vm => AddViewFor(region, vm)).Subscribe());
            _disposables.Add(region.Removed.Do(vm => RemoveViewFor(vm)).Subscribe());
            _disposables.Add(region.Activated.Do(vm => ActivateViewFor(vm)).Subscribe());

            _disposables.Add(
                Observable
                .FromEventPattern <SelectionChangedEventArgs>(_regionTarget, "SelectionChanged")
                .Where(e => ReferenceEquals(e.EventArgs.OriginalSource, _regionTarget))
                .Where(_ => !_suppressSelectionChanged)
                .Where(_ => _regionTarget.SelectedItem != null)
                .Do(_ => region.RequestNavigate(LookupViewModel(_regionTarget.SelectedItem), NavigationParameters.UserNavigation))        // TODO: SelectMany?
                .Subscribe());
        }