2013-10-04 76 views
0

我有一個用戶控件,它是一個標籤組合框,通過調試我注意到,每次我打開包含用戶控件的視圖時,還有一個對每個模型屬性的獲取請求比前一次!用戶控件累積依賴屬性綁定

我每次打開視圖時都會重新實例化模型(因爲實際上不需要提及的原因),但是看起來發生的情況是與該模型的任何以前的副本的綁定都被保留,並且模型似乎沒有被正確處理,因爲它仍然通過這個綁定綁定到程序中!我明白可以持續多次綁定到依賴項屬性,但是如何阻止這種情況發生?

兩個方面的考慮我已經想到了:

1)用戶控件沒有被設置視圖時關閉的,如果可能的話,我應該把我的注意力轉向確保它被設置的?或者這是過度需要WPF的需求?

2)每次打開視圖時,應該重新實例化模型,而不是在模型基類中實現一個複製函數,它將所有屬性轉換爲相反的模式以實際創建另一個模型實例?

您認爲如何?

感謝

回答

0

最後修正了這個問題,這個問題並不僅限於我的用戶控制,但實際上所有控件(包括標準WPF的)綁定的!當窗口關閉時,綁定沒有被終止,這個bug /問題/設計(也許它有用處 - 雖然我看不到會是什麼)對我來說似乎很奇怪。最初,我確實認爲也許這是我設置綁定的方式,但是綁定到普通文本框的一種方法是使用Text =「{Binding name}」 - 沒有定義其他可能導致此問題的配置!

無論如何,我找到的解決方案是將BindingOpertations.ClearAllBindings(this)添加到窗口關閉事件。希望這可以幫助你解決這個問題。

相關問題