Сортировка столбцов DataGridView работает, но не в правильном порядке - PullRequest
0 голосов
/ 11 марта 2020

У меня есть DGV, который привязан к таблице данных, которая заполняется с помощью кода ниже:

Dim dt As DataTable = FetchMyDataTable(SQLQuery, ConnectionString)
Me.DataSet.Table.Rows.Clear()
For Each dr As DataRow In dt.Rows
Dim cost As Double = dr("cost")

Все значения сохраняются в переменной, затем переменные присваиваются прямо в поле в таблице данных или используются в расчете, который заключен в CDbl ():

Dim rw As DataRow = Me.DataSet.Table.NewRow
rw("cost") = cost

или

rw("nett") = CDbl(Math.Round((cost + varaiable1 + varaiable2) * (1 + (varaiable3/ 100)), 2))

Поля в DGV требуют правильного знака после значения, и это либо%, либо £:

rw("cost") = "£ " & rw("cost")

или

rw("profit") = rw("profit") & " %"

У меня есть два метода, где один добавляет знак ко всем значениям в DGV, а другой - удаляет. Я выполняю RemoveSigns () перед выполнением любых пересчетов после того, как пользователь изменяет значение в DGV, и после того, как я делаю AddSigns ().

Теперь поля в DGV имеют типы столбцов DataGridViewAutoFilterTextBoxColumn, влияет ли это на что-то неуверенное, но когда Я пытаюсь отсортировать один из столбцов, которые они не сортируют надлежащим образом, например, значение £ 8,40 будет выше £ 90,20, а затем ниже будет £ -12,00. Мне это нужно, так что он будет сортироваться так, что если возрастает, то сначала негативы, а затем значение повышаются, а если убывают, то наибольшее значение и заканчиваются на негативах.

РЕДАКТИРОВАТЬ: я полагаю, что это может быть потому, что DataSet.Table, к которому DGV привязан, столбцы настроены на строки, а не двойники. Когда я обновляю их до двойных, я не могу добавить в поля знак £ и%. Есть ли другой способ достичь того, чего я добиваюсь здесь?

...