2014-06-08 31 views
1

由於問題的狀態確實如此。WPF Datagrid,可以選擇或專注於行創建?

我喜歡創建時要創建的行,因爲用戶可能希望在創建該行時執行某些操作。

我通常通過ViewModel使用observable集合創建一行,一旦添加集合,WPF DataGrid的ItemSource就會刷新。

我會在必要時發佈代碼。

但是,如果有解決方案,可以在DataGrid或MVVM中查看。我真的不在乎。

感謝您的幫助

+0

將datagrid綁定到模型中的SelectedItem屬性。當你在你的模型中添加一個項目時,創建新添加項目的'SelectedItem'。 – Silvermind

回答

2

首先你需要將DataGrid的的SelectedItem綁定到模型中的一個屬性。我不記得默認綁定模式是否爲SelectedItem的2種方式,但如果不是,請在您的綁定中指定2種方式,以便您可以在模型中設置它的值。

添加新記錄時,您需要存儲對主鍵值的引用,然後在刷新ItemSource後,您需要找到與存儲的主鍵值相匹配的對象。

例如,如果你有一個整數主鍵:如果您使用的是由標識列,您將只需要插入記錄後獲取新ID的主鍵

int recordId = [value of primary key in new record] 
Records = [select records from database] 
GridItemSource = Records; 
SelectedItem = Records.Where(x => x.RecordId == recordId).FirstOrDefault(); 

+0

當然,使用SelectedItem屬性是最好的選擇。謝謝 – user3428422