Puting a class on the clipboard
private void SendToClipBoard()
{
CardCollection cards = new CardCollection();
foreach (ListViewItem item in listCards.SelectedItems)
{
//Add Selected Items to CardCollection
cards.Add(doc.Cards[Int32.Parse(item.SubItems[SubItemId].Text)]);
}
IDataObject iData = new DataObject();
iData.SetData(CardCollection.Format.Name, false, cards);
iData.SetData(DataFormats.Text, false, cards.ToString());
Clipboard.SetDataObject(iData, true);
}
private void ReadFromClipBoard()
{
CardCollection cards;
IDataObject iData = Clipboard.GetDataObject();
if (iData.GetDataPresent(DataFormats.Text))
{
MessageBox.Show(iData.GetData(DataFormats.Text).ToString());
}
if (iData.GetDataPresent(CardCollection.Format.Name))
{
cards = (CardCollection) iData.GetData(CardCollection.Format.Name);
//Accessing the Count property throws a NullReferenceException!
if (cards.Count > 1) { doc.Cards.AddRange(cards); }
else if (cards.Count > 0) { doc.Cards.Add(cards[0]); }
}
}

