c# - 如何使 WPF 数据网格的第一行成为自动添加新行的行

标签 c# wpf c#-4.0 wpfdatagrid

我有一个实现 INotifyPropertyChanged 的简单类:

class Revision {

 - int Id
 - string Description

}

然后,我有另一个类包含上述“修订”类的可观察集合:

ObservableCollection<Revision> revisionList = new ObservableCollection<Revision>();

在我的 UI 中,我有一个 Datagrid,它双向绑定(bind)到上面的“revisionList”,自动生成列并显示空白行,以便我可以添加新行。

但是,我想让数据网格做的是让空白的新行成为网格的第一行而不是最后一行,在那之后,我希望下一行是网格中的所有 Revision 对象“revisionList”,按“Id”属性降序排列。

为了更清楚,假设我在“revisionList”中有 3 个修订版,我得到的是默认的数据网格,如下所示:

 ----------------------------------
|  Id  |        Description        |
 ----------------------------------
|  0   |   Revision 00             |
 ----------------------------------
|  1   |   Revision 01             |
 ----------------------------------
|  2   |   Revision 02             |
 ----------------------------------
|  < blank add new revision line > |
 ----------------------------------

我想要的数据网格是这样的:

 ----------------------------------
|  Id  |        Description        |
 ----------------------------------
|  < blank add new revision line > |
 ----------------------------------
|  2   |   Revision 02             |
 ----------------------------------
|  1   |   Revision 01             |
 ----------------------------------
|  0   |   Revision 00             |
 ----------------------------------

有没有什么方法可以设置数据绑定(bind),或者我可以使用的数据网格上的任何事件,以便数据网格自动表现得像这样?

最佳答案

我不知道你是如何加载你的可观察集合的,但如果你偶然使用 for 循环,你可以在加载之前添加空白修订,然后从顶部开始使用 for 循环。

 var blankRevision = new Revision(); 
 revisionList.add(blankRevision);

 for (int i = YourDataSource.Count; i > 0; i--) {

      revisionList.add(YourDataSource[i-1]);
 }

如果这没有帮助,还有其他方法可以做到这一点。此外,最好不要让您的数据网格自动生成,而是制作一些 DataGridTextColumns 并将 id 和描述绑定(bind)到列,这将允许对列进行更多自定义。

关于c# - 如何使 WPF 数据网格的第一行成为自动添加新行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14489313/

相关文章:

c# - 在干净地忽略 0 的同时使用 Linq 进行平均

c# - 分组为数组

wpf - 在上下文菜单中分组

c# - 从 Decimal 转换为 Single 并返回。为什么会抛出溢出异常?

asp.net - 在 asp.net C# Web 应用程序中翻译其他语言的文本

asp.net-mvc-3 - 如何使用 MVC3 和 ASP.Net 执行 302 重定向?

c# - 在 .NET 线程中花费了多少时间?

C# CopyFromScreen 问题

c# - 将集合绑定(bind)到列表框

c# - 用图像填充 WPF 矩形