2012-02-09 94 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,但排序綁定數據,通常更容易實現其。