protected override MultiSelectionVM <TItemSource, TItemVM> ProvideValue(IBehaviorContext context) { TSourceObject sourceObject = this.GetValueNext <TSourceObject>(context); var vm = new MultiSelectionWithSourceVM <TSourceObject, TItemSource, TItemVM>( _descriptor, context.ServiceLocator ); vm.InitializeFrom(sourceObject); return(vm); }
private static void HandleIsSelectedChanged( MultiSelectionWithSourceVM <TSourceObject, TItemSource, TItemVM> vm, ChangeArgs args ) { var item = (SelectableItemVM <TItemSource, TItemVM>)args.ChangedVM; if (item.IsSelected) { if (!vm.SelectedItems.Contains(item)) { vm.SelectedItems.Add(args.ChangedVM); } } else { vm.SelectedItems.Remove(args.ChangedVM); } }