예제 #1
0
        private void UpdateTableGrid1(ActiveOrdersGridEventArgs e)
        {
            List <int> indexes = new List <int>();

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                string SName = dataGridView1.Rows[i].Cells[0].Value?.ToString();
                if (SName == e.StrategyName)
                {
                    indexes.Add(i);
                }
            }
            int shift = 0;

            foreach (int index in indexes)
            {
                dataGridView1.Rows.RemoveAt(index - shift);
                shift++;
            }

            foreach (ActiveOrders order in e.ActiveOrdersList)
            {
                dataGridView1.Rows.Add(e.StrategyName, order.OrderType, order.Direction,
                                       order.Amount, order.Price, order.Comment);
            }
            dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Descending);
            dataGridView1.Refresh();
        }
예제 #2
0
        public void OnUpdateActiveOrders(object sender, ActiveOrdersGridEventArgs e)
        {
            lock (LockObjectGrid1)
            {
                if (e.StrategyType != "Grid")
                {
                    return;
                }

                if (dataGridView1.InvokeRequired)
                {
                    dataGridView1.Invoke(new Action <ActiveOrdersGridEventArgs>((arg1) =>
                    {
                        //ThreadPool.QueueUserWorkItem((x) => UpdateTable());
                        UpdateTableGrid1(arg1);
                    }), e);
                }
                else
                {
                    UpdateTableGrid1(e);
                }
            }
        }