2013-01-23 30 views
2

我有一個簡單的類,它實現INotifyPropertyChanged如何使一個WPF DataGrid的第一行是自動添加新行線

class Revision { 

- int Id 
- string Description 

} 

然後,我有另一個類持有的可觀察集合上述的「修訂」級:

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

在我的UI,我有一個數據網格是綁定到「revisionList」雙向以上,自動生成的列和表示一個空行,所以我可以添加新行。

但是,我想要datagrid要做的是空白的新行行是網格的第一行而不是最後一行,然後,我希望下一行是所有Revision對象內部按「Id」屬性排序的「revisionList」遞減。

使其更清晰,假設我有「revisionList」裏面3個版本,我所得到的是默認的DataGrid這樣的:

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

我要的是爲DataGrid是這樣的:

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

有沒有什麼辦法可以設置數據綁定,或者我可以使用的datagrid上的任何事件,以便datagrid自動運行?

+1

可能重複http://stackoverflow.com/q/2314458/1305169? – PGallagher

回答

0

我不知道你是如何加載你的可觀察集合,但如果偶然使用for循環,你可以在加載前添加空白修訂版,然後從頂部開始使用for循環。

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

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

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

還有其他方法可以做到這一點,但如果這沒有幫助。此外,它可能會更有幫助不讓你的datagrid自動生成,而是做一些DataGridTextColumns,並將id和描述綁定到列,這將允許更多的定製到列。

相關問題