private void SelectionChange(object cItem, bool bSelected)
		{
			if (null != cItem)
			{
				List<object> aItems;
				if (null != SelectionChanging)
				{
					aItems = new List<object>();
					aItems.Add(cItem);
					SelectionChangingEventsArgs e;
					if(bSelected)
						e = new SelectionChangingEventsArgs(null, aItems);
					else
						e = new SelectionChangingEventsArgs(aItems, null);
					SelectionChanging(this, e);
					if (e.bCancel)
						return;
				}
				if (null != aItemsSelected)
					aItems = ((IEnumerable<object>)aItemsSelected).ToList();
				else
					aItems = new List<object>();
				if(bSelected)
					aItems.Add(cItem);
				else
					aItems.Remove(cItem);
				_bMark = false;
				aItemsSelected = aItems;
				_bMark = true;
				MarkRight();
			}
		}