2011-08-11 109 views
0

我是wpf的新手,正在開發一個會計應用程序。我的問題是如此簡單,但我很驚訝,我無法找到一個簡單的解決方案,它是這樣的:wpf中的datagrid的奇怪問題

我必須創建一個只有列應具有可見邊框的數據網格。

我的意思是它應該是這個樣子:

____________________ 
| col1 | col2| col3| 
|______|_____|_____| 
| r1 | r1 | r1 | 
| r3 | r2 | r2 | 
|  |  |  | 
|  |  |  | 
|  |  |  | 
|  |  |  | 
|______|_____|_____| 

我可以在底部繪製網格沒有國界,但問題是,如果只有一個行的DataGrid中列邊框將不會往下走,直到DataGrid的外邊框我的意思是如果只有一排那是我的DataGrid的外觀:

____________________ 
| col1 | col2| col3| 
|______|_____|_____| 
| r1 | r1 | r1 | 
| r3 | r2 | r2 | 
|______|_____|_____| 
|     | 
|     | 
|     | 
|__________________| 

這很容易理解,因爲只有一列,但我想是多少無關行應該有線接觸到數據網格的底部邊框,是否有任何簡單的方法讓他?

還有一個問題,那是我想被選中第一行,每當加載的形式集中,但無論我怎麼努力...它仍然沒有得到解決......

回答

1

的一種方式可能是獲得使用this後DataGrid中的最後一行,並設置它的高度

height = DataGridHeight - Height of all rows except last one

您可能還需要減去像DataGridHeaderHeight值。

關於你的第二個問題..你有沒有嘗試將DataGrid的SelectedIndex設置爲0在DataGrid的加載事件中?

+0

它可能工作,但不會違背MVVM模式,因爲我們正在控制來自後面代碼的可視表示形式......並且當行數超過數據網格高度的可視區域時它也失敗,即當datagrid中有一個滾動條..任何其他想法?? – Sudh

+0

首先不是,它不是針對MVVM的,因爲我們只是在後面的代碼中使用可視元素,我們沒有做任何與數據或業務邏輯相關的事情。對於第二個問題,你可以檢查滾動條是否存在,它存在,你不需要應用這個條件 –

+0

感謝您清除我對MVVM的疑問,但關於滾動條,如果它存在,我不應用條件,一旦用戶滾動下來,它仍然會出現同樣的問題......並且如果用戶在最後一行插入了數據,那麼還有一點不會看起來很緊張...... – Sudh