2012-02-09 113 views
-1

我使用下面的代码片段来排序datagridview使用从下拉菜单中选择sortOption - 截止日期或优先级。datagridview的自定义排序

我已经有最后期限选项很好地工作。但是我认为优先选项的只是此刻排序它aphabetically但我要显示具有高优先级排第一,然后介质,然后在TaskTable(DataGridView中)低

任何想法吗?

private void sortButton_Click(object sender, EventArgs e) 
    { 
     string sortOption; // selected sorting method 

      sortOption = sortComboBox.Text; 

      switch (sortOption) 
      { 
       case "Deadline": 
        TaskTable.Sort(TaskTable.Columns["Deadline"], 
        System.ComponentModel.ListSortDirection.Ascending); // sort by deadline, nearest first. 
        break; 
       case "Priority": 
        TaskTable.Sort(TaskTable.Columns["Priority"], 
        System.ComponentModel.ListSortDirection.Ascending); // sort by priority - high, medium, low 

        break; 
+0

DataGridView是winforms不是WPF – 2012-02-09 16:19:14

回答

1

您可以为每种类型(如1,2,3)添加一行额外的行,并使用该行(隐藏行)进行排序。以机械方式将数字分配给每种类型并使用该整数进行排序。

0

那么您定义的优先级值是'高','中'和'低'?如果是这种情况,你应该定义一个散列表,一个新的结构或类似的东西,以便为用户提供诸如“高”,“中等”之类的值,但要确保它被正确排序(按字母顺序排列,即取决于实际的十六进制值)。

高1 介质2 低3

其他行会完成这项工作了,但是我不认为这是最好的选择。您应该封装实际值及其各自的密钥。以防万一需求发生变化,您将更容易匹配它们。

0

如果这是真的WPF排序DataGrid,但排序绑定数据,通常更容易实现其。