Соответствие выбора динамического идентификатора контента списку ItemViewModel в SiteFinity
Я создал модуль Продукты и тип контента продукта. Я создаю собственный виджет для отображения одного продукта. Я настроил свой дизайнер и, как только я уронил виджет на страницу, я могу выбрать из списка продуктов, используя sf-list-selector sf-dynamic-items-selector. Моя проблема заключается в сопоставлении идентификатора выбранного элемента со списком продуктов, которые отображает мой виджет. Вот код, который виджет использует для получения всех продуктов:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElements = dynamicModuleManager.GetDataItems(contentType).Where(x => x.Status == ContentLifecycleStatus.Live);
products = contentElements.ToArray().Select(p => new ItemViewModel(p)).ToArray();
Это хорошо работает и подтягивает список продуктов. Вопрос в том, как отфильтровать этот список, используя идентификатор выбранного продукта от дизайнера. У меня есть это, и они не совпадают:
products.Single(p => p.DataItem.Id == Guid.Parse(selectedProductId))
Как перейти от ItemViewModel к идентификатору, который дает мне селектор?
используя Feather 9.1
1 ответ
Пошел другой маршрут. Вместо того, чтобы получить список и фильтрацию, сделали так:
var dynamicModuleManager = DynamicModuleManager.GetManager(providerName);
var contentType = TypeResolutionService.ResolveType(typeName);
var contentElement = dynamicModuleManager.GetDataItem(contentType, Guid.Parse(selectedProductId));
product = new ItemViewModel(dynamicModuleManager.Lifecycle.GetLive(contentElement));