public static void OnlyExistingItemsAreSelected <TOwner, TTarget, TSource, TVM>( this ValidatorBuilder < TOwner, TTarget, SingleSelectionVMDescriptor <TSource, TVM> > builder, string errorMessage = null, object details = null ) where TTarget : IViewModel <SingleSelectionVMDescriptor <TSource, TVM> > where TOwner : IViewModel where TVM : IViewModel, IHasSourceObject <TSource> { errorMessage = errorMessage ?? Localized.SelectedItemsNotInSourceItems; builder.Check(x => x.SelectedItem).Custom(args => { var selectionVM = args.Target; if (args.Value != null) { if (!SelectionHelpers.IsItemContainedInAllSourceItems(selectionVM, args.Value.Source)) { args.AddError(errorMessage, details); } } }); }
public static void OnlyExistingItemsAreSelected <TOwner, TTarget, TSource, TVM>( this ValidatorBuilder < TOwner, TTarget, MultiSelectionVMDescriptor <TSource, TVM> > builder, string errorMessage = null, object details = null ) where TTarget : IViewModel <MultiSelectionVMDescriptor <TSource, TVM> > where TOwner : IViewModel where TVM : IViewModel, IHasSourceObject <TSource> { errorMessage = errorMessage ?? Localized.SelectedItemsNotInSourceItems; builder.CheckCollection(x => x.SelectedItems).Custom(args => { var selectionVM = args.Items.OwnerVM; foreach (TVM selectedItem in args.Items) { if (!SelectionHelpers.IsItemContainedInAllSourceItems(selectionVM, selectedItem.Source)) { args.AddError(selectedItem, errorMessage, details); } } }); }