我正在模拟 VB.Net 中旧应用程序的功能。我的表单上有一个绑定到 BindingSource 的 DataGridView。我在工具栏上有一个按钮,它启动了一个排序对话框。排序对话框最多允许按 3 列排序。
所以我正在从对话框的结果中构建一个字符串,并用它设置 BindingSource.Sort 属性。但这不会更新我的 DataGridView。我错过了一步 - 我需要告诉一些东西来刷新吗?
我正在模拟 VB.Net 中旧应用程序的功能。我的表单上有一个绑定到 BindingSource 的 DataGridView。我在工具栏上有一个按钮,它启动了一个排序对话框。排序对话框最多允许按 3 列排序。
所以我正在从对话框的结果中构建一个字符串,并用它设置 BindingSource.Sort 属性。但这不会更新我的 DataGridView。我错过了一步 - 我需要告诉一些东西来刷新吗?
我只是用一个简单的测试应用程序尝试了这个,它排序而无需调用任何刷新。你能发布一些代码吗?你确定你正确地建立了排序字符串吗?
您是否必须调用 DataGridView.DataBind() 方法?
我已经习惯了 ASP.NET,以至于忘记了 WinForms 的东西。
什么是底层对象,它是否支持排序?您可以通过 .SupportsSorting 属性 (iirc) 进行检查。如果它是一个 DataTable 那么你应该没问题。
您是否尝试过将排序直接应用于网格?
您可以在更新排序属性后尝试调用BindingSource.ResetBindings(false),只是为了安全起见,但您不必这样做。