0

モジュール Products とコンテンツ タイプ product を作成しました。単一の製品を表示するカスタム ウィジェットを作成しています。デザイナーをセットアップしました。ウィジェットをページにドロップすると、sf-list-selector sf-dynamic-items-selector を使用して製品リストから選択できます。私の問題は、選択したアイテム ID を、ウィジェットがプルアップしている製品のリストと照合することです。ウィジェットがすべての製品を取得するために使用するコードは次のとおりです。

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();

これはうまく機能し、製品のリストが表示されます。問題は、デザイナーから選択した製品 ID を使用してこのリストをフィルター処理する方法です。私はこれを持っていますが、一致しません:

products.Single(p => p.DataItem.Id == Guid.Parse(selectedProductId))

ItemViewModel からセレクターが提供する Id に移動するにはどうすればよいですか?

Feather 9.1 を使用

4

1 に答える 1

0

別の道を歩んだ。リストを取得してフィルタリングする代わりに、次のようにしました。

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));
于 2016-07-19T17:43:51.497 に答える