Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }