Ejemplo n.º 1
0
        private void OrdersGrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
        {
            if ((string)e.Column.Header == "Trade")
            {
                //make sure the popup isn't too big, otherwise items can be hidden in small resolutions
                OrdersGridTradePickerPopup.Height = Math.Min(600, OrdersGrid.ActualHeight - 100);

                var order = (Order)OrdersGrid.SelectedItem;
                //if this order belongs to a closed trade, disallow editing
                if (order.Trade != null && order.Trade.Open == false)
                {
                    e.Cancel = true;
                    return;
                }

                //Fill it
                TradePickerListBox.ItemsSource = Context
                                                 .Trades
                                                 .Where(x => x.Open)
                                                 .OrderBy(x => x.Name)
                                                 .ToList()
                                                 .Select(
                    x => new CheckListItem <Trade>(x))
                                                 .ToList();

                //make sure the currently selected trade is checked
                if (order.Trade != null)
                {
                    foreach (CheckListItem <Trade> item in TradePickerListBox.Items)
                    {
                        item.IsChecked = order.Trade.ID == item.Item.ID;
                    }
                }

                //and open it at the right position
                OrdersGridTradePickerPopup.PlacementTarget = OrdersGrid.GetCell(e.Row.GetIndex(), e.Column.DisplayIndex);
                OrdersGridTradePickerPopup.IsOpen          = true;
            }
        }