我的Silverlight 4應用程序中有一個數據網格。 我也做了一個自定義文本框,只接受數值並做了其他一些具體的事情。 我還在我綁定的自定義控件上添加了一個十進制依賴項屬性,它幾乎可以返回控件從TextBox繼承的Text的格式化版本。自定義控件的Silverlight數據網格虛擬化
然後我將datagrid的itemssource綁定到observablecolletion。 我還使用DataGridTemplateColumn將我的自定義控件添加爲datagrid中的一列。
一切工作正常,除了datagrid的虛擬化。 如果我將一個項目添加到dataGrid,編輯我的自定義控件中的值,刪除該行,然後添加一個全新的行(一個完整的新實例),那麼我的自定義控件中的值就是已刪除行的值。 並澄清,這不是一個約束性的錯誤或類似的東西。 問題是,我的自定義文本框的構造函數沒有被調用,也沒有更新綁定,直到我更改我的自定義控件中的實際值。 datagrid的虛擬化將重新使用以前創建的控件。
我不想關閉虛擬化。 有沒有辦法指定我的自定義控件應該如何回收(虛擬化)? 或者,當控件被虛擬化或回收時,可能會觸發一個事件?
任何幫助將不勝感激。