[英]Make a cell with ComboBox readonly on certain conditions WPF DataGrid
[英]How to make WPF datagrid cell ReadOnly for certain rows?
我使用WPF數據網格來編輯數據庫表。 該表包含具有16列(屬性)的幾條記錄。
我希望僅當選定記錄的某一列具有特定值時用戶嘗試對其進行編輯的情況下,才能使該列為只讀(換句話說,對於某些記錄,禁用該特定列的編輯)。
我當時想綁定到列IsReadOnly屬性,但是我不知道如何將需要驗證的列(或至少當前行)作為轉換器參數傳遞。
有人知道如何執行此操作嗎?
我在這里找到了解決方案。 使用DataGrid.BeginningEdit事件有條件地檢查單元格是否可編輯,然后在事件args上設置Cancel屬性(如果不是)。
我不知道這是否是最好的解決方案,但是它有效。
我建議在設置DataGrid
的ItemsSource
的同時使特定的DataColumn
Readonly。 考慮以下示例:
DataTable tab = new DataTable();
DataColumn col = tab.Columns.Add("a");
// data added code
foreach (DataColumn col in tab.Columns)
foreach (DataRow r in tab.Rows)
{
if (r[col].Equals("..."))
{
col.ReadOnly = true;
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.