/// <summary> /// Purpose: Public Indexer to return the required View by passing the ViewModel. /// </summary> /// <param name="OViewModel"> OViewModel: ViewModelBase derived object</param> /// <returns> TView: FrameworkElement derived object </returns> public TView this[TViewModel OViewModel] { get { VVMContainer KeyContainer = FindViewOrViewModel(OViewModel, false); return(KeyContainer.View); } }
/// <summary> /// Purpose: Public Indexer to return the required ViewModel by passing the view. /// </summary> /// <param name="OView"> OView: FrameworkElement derived object</param> /// <returns> TViewModel: ViewModelBase derived object </returns> public TViewModel this[TView OView] { get { VVMContainer KeyContainer = FindViewOrViewModel(OView, true); return(KeyContainer.ViewModel); } }
/// <summary> /// Purpose: Public UnRegister() [Function] for unregistering the viewmodel & view specificied. /// </summary> /// <param name="ViewOrViewModel"></param> /// <param name="IsView"></param> public void UnRegister(object ViewOrViewModel, bool IsView) { VVMContainer KeyContainer = FindViewOrViewModel(ViewOrViewModel, IsView); if (!KeyContainer.Equals(null)) { KeyContainer.View = null; KeyContainer.ViewModel = null; _VVMList.Remove(KeyContainer); GC.Collect(0); #if !DEBUG Console.WriteLine("GC Generation Number: " + GC.MaxGeneration); Console.WriteLine("GC Collected objects: " + GC.CollectionCount(2)); #endif } }