C# datagridview的自定义排序
我使用下面的代码片段使用从下拉菜单中选择的排序选项对datagridview进行排序-截止日期或优先级 我的最后期限选择很有效。然而,我认为优先级选项目前只是将其按标签排序,但我希望在TaskTable(datagridview)中首先显示高优先级的行,然后显示中优先级,然后显示低优先级的行 有什么想法吗C# datagridview的自定义排序,c#,winforms,datagridview,C#,Winforms,Datagridview,我使用下面的代码片段使用从下拉菜单中选择的排序选项对datagridview进行排序-截止日期或优先级 我的最后期限选择很有效。然而,我认为优先级选项目前只是将其按标签排序,但我希望在TaskTable(datagridview)中首先显示高优先级的行,然后显示中优先级,然后显示低优先级的行 有什么想法吗 private void sortButton_Click(object sender, EventArgs e) { string sortOption; // se
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;
您可以为每种类型(如1、2、3)添加一个额外的行,并使用该行(隐藏行)对其进行排序。机械地为每种类型分配数字,并使用该整数进行排序。那么您定义的优先级值是“高”、“中”和“低”?如果是这种情况,您应该定义一个哈希表、一个新的结构或类似的东西,以向用户提供诸如“high”、“medium”等字段值,但要确保其排序正确(按字母顺序,即根据实际十六进制值) 高1 中等2 低3
额外的行也可以完成任务,但我认为这不是最好的选择。您应该封装实际值及其各自的键。万一需求发生变化,您将更容易匹配它们。如果这真的是
WPF
,不要对数据网格进行排序,而是对绑定数据进行排序,这通常更容易实现 DataGridView是winforms而不是WPF