2

我有一个实现的简单类INotifyPropertyChanged

class Revision {

 - int Id
 - string Description

}

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

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

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

但是,我希望数据网格做的是让空白的新行行成为网格的第一行而不是最后一行,之后,我希望下一行是“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             |
 ----------------------------------

有什么方法可以设置数据绑定,或者我可以使用的数据网格上的任何事件,以便数据网格自动像这样运行?

4

1 回答 1

0

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

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

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

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

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

于 2013-01-23T23:54:20.483 回答