示例#1
0
        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);
                    }
                }
            });
        }