public void OnSourcePropertyInternalChanged(object newvalue) { if (newvalue == null) { CurrentItem = null; } if (Source == null) { return; } UpdateSource(null); ChildSource.Clear(); if (Source == null || Source.Count == 0) { return; } var keys = Source.Select(item => (object)item.ENTITY2GCKEY).ToList(); var pk = WMSBusinessObject.GetPrimaryKeyPropertyName(_itemType); var pkSourceName = SourceNameHelper.Instance.GetPropertySourceName(_itemType, pk); using (var mgr = GetManager(_itemType)) { var items = mgr.GetFiltered(FilterHelper.GetFilterIn(pkSourceName, keys)); ChildSource.AddRange(items); } }
private void InitializeLookUpCodeEditor() { if (string.IsNullOrEmpty(LookUpCodeEditor)) { throw new DeveloperException("Lookup code is not set."); } LookupInfo = LookupHelper.GetLookupInfo(LookUpCodeEditor); // определяем максимально кол-во элементов, которые нужно получать MaxFetchItemsCount = LookupInfo.FetchRowCount.HasValue ? Convert.ToInt32(LookupInfo.FetchRowCount.Value) : (int?)null; var filtertxt = LookupInfo.Filter; filtertxt += string.IsNullOrEmpty(LookUpCodeEditorVarFilterExt) ? string.Empty : LookUpCodeEditorVarFilterExt; // если извне хотят управлять колонками - пусть сам и управляют if (LookUpColumnsSource == null) { LookUpColumnsSource = DataFieldHelper.Instance.GetDataFields(LookupInfo.ItemType, SettingDisplay.LookUp); } LookupHelper.InitializeVarFilter(filtertxt, out _filter0, out _varFilter); // инстанируем ManagerInstance = LookupHelper.GetItemSourceManager(LookupInfo); ManagerInstance.AllowMonitorChangesInOtherInsances = true; // получим property - primarykey _primaryKeyPropertyName = WMSBusinessObject.GetPrimaryKeyPropertyName(LookupInfo.ItemType); }