2010-01-14 72 views
4

是爲特定值轉換器類在每個綁定中實例化的單獨的WPF值轉換器對象嗎?值轉換器是否在WPF中通過綁定實例化?


我想創建一個雙向位到布爾值轉換器。我想能夠在一個值類型(如ushort)一個bool屬性(如IsChecked)綁定到一個比特。我使用轉換器的parameter參數來指定該位。實現ConvertBack()方法非常簡單,但Convert()並不麻煩。

In Convert()我需要知道整個ushort的值是什麼,所以我可以切換我感興趣的單個位。我想在我的值轉換器類中使用成員變量來臨時存儲無論何時調用ConvertBack(),都會導致上述問題:每個綁定是否都有自己的值轉換器實例?

回答

4

,我多的ViewModels創建的,它會之間的屬性共享。

如果您需要獨特的轉換器: 如果您爲屬性創建一個特定的轉換器,但是,它不會被共享。任一選項都可行。您甚至可以在資源中使用多個轉換器(相同類型,不同的鍵),這將創建獨特的實例。

+1

有人可以澄清這個答案。有些地方會出現一些錯字,這使得這很容易混淆。 – NVM 2011-02-28 09:43:27

+0

@NVM:你在這裏感到困惑嗎?我很樂意澄清...... – 2011-02-28 13:58:07

+0

「如果您需要獨特的轉換器:但是,如果您爲某個屬性創建了特定的轉換器,它將不會被共享。」這沒有任何意義。有什麼想念不是嗎?謝謝。 – NVM 2011-02-28 14:09:50

2

創建你的轉換器一個構造函數和析構函數,並設置內肯定告訴斷點。我剛剛創建了一個簡單的例子,它看起來像只有一個轉換器是爲如果您在使用你的資源定義的轉換器中使用構造

+0

我也這樣做,並有同樣的結果 - 很明顯,當我宣佈這是我的XAML單一靜態資源只有一轉換器將被實例化。 – 2010-01-14 21:19:09