Бывают ситуации, когда в LookUp для строк детейла нужно вставлять только определенные значения. Для этого список, открываемый на LookUp-форме необходимо ограничить. Однако для AjaxGroupEdit имеются свои особенности, которые необходимо учитывать. В результате чего код выглядит чуть сложнее, чем при ограничении на “обычном” LookUp.

Предположим, есть следующая модель данных:

При добавлении строки-детейла у “МастерАгрегатор” для свойства “СвойствоДетейлаДляЛукапа” должно быть доступно только свойство “СвойствоЛукапМастера2” у “ЛукапМастер”.

В коде приложения это будет выглядеть следующим образом:

/// <summary>
/// Здесь лучше всего писать бизнес-логику, оперируя только объектом данных.
/// </summary>
protected override void PreApplyToControls()
{
	ctrlКомната.AddLookUpSettings(Information.ExtractPropertyPath<МастерАгрегатор>(r => r.ЛукапМастер), new LookUpSetting
	{
		LimitFunction = FunctionBuilder.BuildEquals<ЛукапМастер>(x => x.[СвойствоЛукапМастера2], [ЗначениеСвойстваЛукапМастер])
	});
}      

Пример

На реальном примере выглядит следующим образом:

Диаграмма

Код

ctrlКомната.AddLookUpSettings(Information.ExtractPropertyPath<Комната>(r => r.НазначениеКомнаты), new LookUpSetting
	{
		LimitFunction = FunctionBuilder.BuildEquals<НазначениеКомнаты>(x => x.Актуально, true)
	});

Вид в приложении

Примечание: Если ограничение на LookUp-форме не применено, следует проверить, правильно ли указаны названия мастеровых классов, представлений и свойств.