У меня следующая ситуация.
Я строю сетку из коллекции объектов. Затем я добавляю два несвязанных столбца.
Первый несвязанный столбец имеет редактор RepositoryItemSpinEdit и содержит целые числа. второй несвязанный столбец содержит только целые числа.
Я пытаюсь обновить второй столбец сразу после изменения первого. Но второй столбец обновляется только после того, как первый потерял фокус. Затем отображается обновленное значение в позиции, а прибыль рассчитывается с прежним значением в позиции.
Любая идея, как обмануть систему, чтобы сделать то, что я хочу?
var spinEditor = new RepositoryItemSpinEdit
{
MaxValue = 999999,
MinValue = -999999,
IsFloatValue = false,
};
spinEditor.EditValueChanged += this.CalculateProfit;
this.gridView.GridControl.RepositoryItems.Add(spinEditor);
this.gridView.Columns.AddField("Position");
this.gridView.Columns["Position"].Caption = "Position";
this.gridView.Columns["Position"].VisibleIndex = this.grid.VisibleColumns.Count;
this.gridView.Columns["Position"].ColumnEdit = spinEditor;
this.gridView.Columns["Position"].UnboundType = UnboundColumnType.Integer;
this.gridView.Columns["Position"].DisplayFormat.FormatType = FormatType.Numeric;
this.gridView.Columns.AddField("Profit");
this.gridView.Columns["Profit"].Caption = "PnL";
this.gridView.Columns["Profit"].VisibleIndex = this.gridView.VisibleColumns.Count;
this.gridView.Columns["Profit"].UnboundType = UnboundColumnType.Decimal;
this.gridView.Columns["Profit"].DisplayFormat.FormatType = FormatType.Numeric;
private void CalculateProfit(object sender, EventArgs eventArgs)
{
int rowIndex = this.gridView.FocusedRowHandle;
var curve = this.gridView.GetRow(rowIndex) as Curve;
this.gridControl.SetGridViewCurve(curve.ID, "Profit", curve.Price * curve.Position);
}