public IList GetSingleItemList(List <WACParameter> parms, ItemGetterDelegate _getItem) { WACParameter wp = WACParameter.GetSelectedKey(parms); if (FList == null || FList.Count < 1) { FList = _getNewSingleItemList(parms, _getItem); } else if (!this.SelectedKey.Equals(wp)) { FList = _getItem(parms, VList); } this.SelectedKey = wp; return(FList); }
private IList _getNewSingleItemList(List <WACParameter> parms, ItemGetterDelegate _getItem) { if (VList != null) { FList = _getItem(parms, VList); } if (FList != null && VList == null) { Type itemType = FList[0].GetType(); Type listType = typeof(List <>).MakeGenericType(itemType); VList = (System.Collections.IList)Activator.CreateInstance(listType); VList.Add(FList[0]); } return(FList); }