private List <SliderItemDataModel> GetList(ControlContext controlContext, LayoutBinding binding, string str) { var layoutContext = controlContext.LayoutContext; var list = new List <SliderItemDataModel>(); if (LayoutContextHelper.TryGetCardDataSource(controlContext, binding, out var cardId)) { var cardData = controlContext.SessionContext.AdvancedCardManager.GetCardData(cardId); Guid cardTypeId = cardData.Type.Id; if (!string.IsNullOrEmpty(str)) { string[] parts = str.Split(splitSymbol); int i = 0; while (i < parts.Length) { var item = new SliderItemDataModel(); item.Url = parts[i++]; item.Description = GetLocalization(layoutContext, cardTypeId, parts[i++]); list.Add(item); } } } return(list); }
/// <summary> /// Конвертирует значение для его показа /// </summary> public override BindingResult ConvertForDisplay(ControlContext controlContext, LayoutBinding binding, BindingResult bindingResult) { var model = GetList(controlContext, binding, bindingResult.Values[0]); return(new BindingResult { Name = bindingResult.Name, Value = model }); }
// Основной метод, возвращающий отображаемое значение (а точнее модель) для значения элемента управления - bindingResult.Value public override BindingResult ConvertForDisplay(ControlContext controlContext, LayoutBinding binding, BindingResult bindingResult) { var itemId = bindingResult.Value != null ? (Guid)bindingResult.Value : Guid.Empty; var name = itemId == Guid.Empty ? "" : refCasesService.GetCaseTitle(itemId); // Клиент ожидает модель, включающую идентификатор и название Дела var model = new CaseClientModel() { Id = itemId, Name = name }; return(bindingResult.Clone(model)); }