2012-12-26 65 views
0

假定一個帶有ICollectionView的DataGrid作爲其ItemsSource,允許用戶刪除/添加/編輯行。問題是如果行中的某個單元格的值具有特定值,那麼如何禁止用戶刪除行。 。換句話說:如何禁止用戶刪除數據網格中的一行?

id Name IsSpecial 
----------------------- 
1 Foo  true 
2 Bar  false 

我想用戶能夠改變foo的名稱,但不能刪除它,以及不允許用戶IsSpecial更改爲false該行。但允許用戶自由地更改IsSpecial爲false的任何其他行上的任何值

+0

將[CanUserDeleteRows](http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.canuserdeleterows.aspx)設置爲'false'? –

+0

差不多......我可能能夠將CanUserDeleteRows綁定到確定當前行是否是「IsSpecial」的東西,但我也需要禁止編輯IsSpecial列。 – user1604008

回答

0

如果後面的代碼正常,可防止編輯使用CellEditEnding事件。如果你設置了e.Cancel=true它不會提交編輯。

當然,你也想阻止用戶刪除一行。所以,我的建議是處理ICollectionView的CurrentChanging事件並取消所需的更改。

相關問題