2010-10-17 31 views
1

我有不同數量的行和列的二維數據,必須將其顯示給用戶進行編輯。數據本身的格式本質上是由行列描述符列表來描述的,每行或每列都有一個標題文本。如何動態修改WPF網格的行和列定義?

我從Grid導出了一個控件,該控件具有行和列描述符的兩個屬性,並根據該信息構建網格行和列。如果用戶動態添加或刪除行或列,它還訂閱兩個描述符集合的列表更改事件以自行更新。

而這裏出現問題 - 當我嘗試修改網格的行或列定義時,我得到一個異常,告訴集合是隻讀的。所以我認爲在網格創建並顯示一次之後不可能修改定義。有任何想法嗎?

只是在這種情況下它很重要 - 一切都是數據綁定的。有一個(動態的)表格集合,每個表格都包含自己的(動態)行和列定義以及爲每個單元格輸入的數據。

回答

1

我做了一個快速測試,我可以通過代碼使用RowDefinitions和ColumnDefinitions集合,在運行時通過代碼將沒有問題的行和列添加到網格中。我不認爲綁定與這個問題有任何關係。

如果另一方面你的意思是DataGrid,是的,這改變了很多東西。

+0

你是對的 - 收藏可以修改。我從修改後的描述符列表中收到了幾個更改通知,並且第一個正確更新了行和列定義。第二個失敗,因爲現在集合被標記爲只讀。我不知道(也沒有調查過)爲什麼它以這種方式工作,但是對於我的情況一切都很好 - 如果定義變爲只讀,因爲所有必要的更改都是第一次完成,我什麼也不做。在我的代碼執行後的某個時刻,集合可以再次修改,並允許對網格進行進一步的修改。 – 2010-10-17 19:45:22