public IDataNavigator CreateInstance(INotifyDisposing viewModel, bool hasView) { if (hasView) { return CreateInstanceWithView(viewModel); } else { return CreateInstanceWithoutView(viewModel); } }
public UIConfig(INotifyDisposing owner) : this() { _IsDiposing = false; EventHandler ownerDisposing = null; ownerDisposing = (sender, args) => { Dispose(); owner.Disposing -= ownerDisposing; }; owner.Disposing += ownerDisposing; }
public MainUIConfig(INotifyDisposing owner) { CreateView = true; Region = CoreRegionNames.BottomRegion; VisibilityProvider = new SimpleVisibilityProvider(); EventHandler ownerDisposing = null; ownerDisposing = (sender, args) => { Dispose(); owner.Disposing -= ownerDisposing; }; owner.Disposing += ownerDisposing; }
private IDataNavigator CreateInstanceWithoutView(INotifyDisposing viewModel) { var instance = _DataNavigatorWithoutViewFactory(); EventHandler disposingHandler = null; disposingHandler = (sender, args) => { viewModel.Disposing -= disposingHandler; instance.Dispose(); }; viewModel.Disposing += disposingHandler; return instance; }
private IDataNavigator CreateInstanceWithView(INotifyDisposing viewModel) { HashSet<IDataNavigatorViewModel> dataNavigators; IDataNavigatorViewModel instance = _DataNavigatorWithViewFactory(); if (!_ViewModelNavigators.TryGetValue(viewModel, out dataNavigators)) { dataNavigators = new HashSet<IDataNavigatorViewModel>(); _ViewModelNavigators.Add(viewModel, dataNavigators); viewModel.Disposing += ViewModelDisposing; } dataNavigators.Add(instance); return instance; }