Ввод отрицательных чисел с начальным нулем в ячейку DataGrid - PullRequest
1 голос
/ 11 марта 2019

Столбец DataGrid привязан к столбцу DataTable с десятичным типом данных, который заполняется из базы данных.

<DataGridTextColumn Binding="{Binding Pay, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay, Header="Sum"/>

После изменения каждой ячейки мне нужно вычислить сумму в столбце.

private void dgPays_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) {
        if (dtPay == null || dtPay.Rows.Count == 0) {
            return;
        }
        decimal Pay;
        DataRow[] rr = dtPay.Select("IsTotal=1");
        foreach (DataRow r in rr) {
            dtPay.Rows.Remove(r);
        }

        Decimal.TryParse(dtPay.Compute("SUM(Pay)", "").ToString(), out Pay);
        dtPay.Rows.Add(null, null, null, null, null, null, Pay, null, true);
    }

Но, когда пользователь вводит отрицательное дробное число с начальным нулем «-0.xxxx» из-за этой привязки, минус теряется во время ввода, а «-0» преобразуется в «0». Такие числа можно вводить только как «-.xxxx», которые автоматически преобразуются в «-0.xxxx», но это неудобно для пользователя.

DataTable заполняется из базы данных, а затем значения сохраняются из нее в базе данных, и я не могу изменить привязку «Mode = TwoWay». Если я изменяю «UpdateSourceTrigger = PropertyChanged» не работает «dtPay.Compute (« SUM (Pay) »,« »)» после окончания редактирования ячейки.

Как ввести "-0"?

...