private CustomLookUpOptPopupContent CreateWindow() { var destType = typeof(IListViewModel <>).MakeGenericType(_itemType); var model = (IObjectListViewModel)IoC.Instance.Resolve(destType, null); model.Mode = ObjectListMode.LookUpList3Points; model.ParentViewModelSource = ParentViewModelSource; model.AllowAddNew = true; model.InitializeMenus(); var modelCapt = model as PanelViewModelBase; if (modelCapt != null) { modelCapt.SetPanelCaptionPrefix(DataContext.GetType()); modelCapt.IsActive = true; } var result = new CustomLookUpOptPopupContent { DataContext = model }; if (result.Owner == null && Application.Current.MainWindow.IsActive) { result.Owner = Application.Current.MainWindow; } return(result); }
private CustomLookUpOptPopupContent CreateWindow() { var destType = typeof(IListViewModel <>).MakeGenericType(_itemType); var model = (IObjectListViewModel)IoC.Instance.Resolve(destType, null); model.Mode = ObjectListMode.LookUpList3Points; model.ParentViewModelSource = ParentViewModelSource; model.AllowAddNew = true; model.InitializeMenus(); var modelCapt = model as PanelViewModelBase; if (modelCapt != null) { modelCapt.SetPanelCaptionPrefix(DataContext.GetType()); modelCapt.IsActive = true; } if (_lookupInfo != null) { string str; Dictionary <string, Dictionary <string, string> > varFilter; LookupHelper.InitializeVarFilter(_lookupInfo.Filter, out str, out varFilter); string filter = null; if (ChildSource != null && ChildSource.Count > 0) { filter = (FilterHelper.GetFilterIn(_itemType, ChildSource.Cast <IKeyHandler>())).Replace(" IN ", " NOT IN "); } if (!string.IsNullOrEmpty(str)) { filter = string.IsNullOrEmpty(filter) ? str : str + " AND " + filter; } if (varFilter != null && varFilter.Count > 0) { var filterParent = new StringBuilder(); foreach (var add in varFilter.Select(key => UpdateFilter(key.Key, ParentViewModelSource, varFilter)).Where(add => !string.IsNullOrEmpty(add))) { filterParent.Append(filterParent.Length > 0 ? " AND " + add : add); } if (filterParent.Length > 0) { filter = string.IsNullOrEmpty(filter) ? filterParent.ToString() : filter + " AND " + filterParent; } } model.ApplyFilter(filter); } var result = new CustomLookUpOptPopupContent { DataContext = model }; if (result.Owner == null && Application.Current.MainWindow.IsActive) { result.Owner = Application.Current.MainWindow; } return(result); }