private void _ordersCManager_PositionChanged(object sender, EventArgs e) { // a new orders details collection has been bound. Fetch it, if it's empty OrderEntity currentOrder = (OrderEntity)_currentCustomer.Orders[_ordersCManager.Position]; if (currentOrder.OrderDetails.Count <= 0) { // fetch it DataAccessAdapter adapter = new DataAccessAdapter(); adapter.FetchEntityCollection(currentOrder.OrderDetails, currentOrder.GetRelationInfoOrderDetails()); } if (!_visitedOrderDetail.Contains(currentOrder.OrderDetails)) { // add handler currentOrder.OrderDetails.ListChanged += new ListChangedEventHandler(CurrentOrderDetail_ListChanged); _visitedOrderDetail.Add(currentOrder.OrderDetails); currentOrder.OrderDetails.AllowRemove = true; } removeOrderButton.Enabled = !_currentCustomer.Orders[_ordersCManager.Position].IsNew; }