public virtual object DoDragDrop()
{
var lst = SelectedItems
.Where(i => i.ObjectState.In(DataObjectState.Unmodified, DataObjectState.Modified, DataObjectState.New))
.Select(i => i.Object)
.Cast<IDataObject>()
.ToArray();
return lst.Length > 0 ? lst : null;
}