使用已排序的DataSet WPF C#

时间:2014-02-20 02:19:22

标签: c# sorting dataset

假设我有一个带有一个表的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());

1 个答案:

答案 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());