我有一个实现INotifyPropertyChanged
的简单类:
class Revision {
- int Id
- string Description
}
然后,我有另一个类,它包含上述“Revision”类的可观察集合:
ObservableCollection<Revision> revisionList = new ObservableCollection<Revision>();
在我的UI中,我有一个Datagrid,它与上面的“revisionList”双向绑定,自动生成列并显示一个空行,以便我可以添加新行。
但是,我想让datagrid做的是将空白的新行行作为网格的第一行而不是最后一行,之后,我希望下一行是所有的内部版本对象。 “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 |
----------------------------------
有什么方法可以设置数据绑定,或者我可以使用的数据网格上的任何事件,以便数据网格会自动运行?
答案 0 :(得分:0)
我不知道如何加载你的可观察集合,但如果你使用for循环你可以在加载之前添加空白版本,然后从顶部开始使用for循环。
var blankRevision = new Revision();
revisionList.add(blankRevision);
for (int i = YourDataSource.Count; i > 0; i--) {
revisionList.add(YourDataSource[i-1]);
}
如果这没有用,还有其他方法可以做到这一点。此外,可能更有帮助的是不要让您的数据网格自动生成,而是制作一些DataGridTextColumns并将id和description绑定到列,这将允许对列进行更多自定义。