private void ItemUnSelectedHandler(object sender, ControlSelectedEventArgs e)
 {
     if (_selectedItem == e.ControlSelected)
     {
         _selectedItem = null;
     }
 }
 private void ItemSelectedHandler(object sender, ControlSelectedEventArgs e)
 {
     if (_selectedItem != null)
     {
         _selectedItem.IsSelected = false;
     }
     _selectedItem = e.ControlSelected as ISelectableDataEntry;
 }
        public void RemoveItem(ISelectableDataEntry DeleteItem)
        {
            DeleteItem.ControlSelected      -= ItemSelectedHandler;
            DeleteItem.ControlUnSelected    -= ItemUnSelectedHandler;
            DeleteItem.ControlDoubleClicked -= ItemDoubleClickedHandler;

            _items.Remove(DeleteItem);
            flowLayoutPanelBody.Controls.Remove(DeleteItem as Control);
        }
        public void AddItem(ISelectableDataEntry NewItem)
        {
            NewItem.ControlSelected      += ItemSelectedHandler;
            NewItem.ControlUnSelected    += ItemUnSelectedHandler;
            NewItem.ControlDoubleClicked += ItemDoubleClickedHandler;

            _items.Add(NewItem);
            flowLayoutPanelBody.Controls.Add(NewItem as Control);
        }
 private void ItemDoubleClickedHandler(object sender, ControlSelectedEventArgs e)
 {
     _selectedItem = e.ControlSelected as ISelectableDataEntry;
     OnItemDoubleClicked(e);
 }