假设我有一个带有一个表的DataSet。该表有两列:id,name。一些随机值:
0 John
1 Michael
2 Alice
3 Bob
我对DataSet进行了排序:
dataSet.Tables[0].DefaultView.Sort = "name";
另外,我有一个listBox来显示这个已排序的DataSet:
lb.ItemsSource = dataSet.Tables[0].DefaultView;
它表现得像我想要的那样:
Alice
Bob
John
Michael
但我还有一个MouseBox的MouseDoubleClick事件,以显示一个带有id号的MessageBox。这是我的问题 - 我无法弄清楚为什么id号没有排序 - 例如Alice应该有“2”但是当我双击Alice时,MessageBox显示“0”(Bob 1,John 2,迈克尔3)。那么,如何永久地对DataSet进行排序? (我知道这个例子很奇怪,但只想找到办法)。
更新
MouseDoubleClick代码:
MessageBox.Show(dataSet.Tables[0].Rows[lb.SelectedIndex][0].ToString());
答案 0 :(得分:1)
您可以像这样设置列表框来源:
lb.ItemsSource = dataset.Tables[0].DefaultView;
...并且你正在检索这样的ID:
MessageBox.Show(dataset.Tables[0].Rows[lb.SelectedIndex][0].ToString());
您在检索ID时未访问DefaultView
。您直接访问DataTable
。
试试这个:
MessageBox.Show(dataset.Tables[0].DefaultView[lb.SelectedIndex][0].ToString());