DataView.Table не подчиняется правилам DataView.Sort - PullRequest
0 голосов
/ 21 октября 2011

У меня есть DataView с именем FubarView, который был создан при обращении к нашей базе данных. Столбцы: Метка, Значение, RawName и PhoneNumber. После создания DataView я добавил порядок сортировки в DataView с помощью ...

this.FubarView.Sort = "RawName, Value"

Затем я (среди прочих не относящихся к делу вещей, таких как настройка DisplayMember и т. Д.) Привязал его к своему WinForms ComboBox ...

cmbDefault.DataSource = this.FubarView;

Это работает отлично, с ComboBox, отображая отсортированную информацию, как задумано. ОДНАКО, когда позже я попытался взглянуть на FubarView, используя SelectedIndex из моего ComboBox ...

phoneNumber = this.FubarView.Table.Rows[cmbDefault.SelectedIndex]["PhoneNumber"]

... это вернет неправильное значение, как если бы FubarView перешел и снова отсортировал по значению! Как вы это исправите?

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Это потому, что вы сортируете представление по таблице, а не по фактической таблице.Поэтому, если вы обращаетесь к таблице через DataView.Table, вы получите исходные данные.

Если вы хотите получить доступ к отсортированным строкам, вы должны получить к ним доступ через DataView.

0 голосов
/ 21 октября 2011

Я бы не работал с индексами, вместо этого я бы использовал идентификаторы.

...