2011-07-21 19 views
1

我在維護一個SilverLight應用程序,並且我不得不手動重新綁定一些TextBoxes的文本。在使用UpdateSource時,在雙向綁定上禁用ConvertBack()

所以我用:

myTextBox.GetBindingExpression(TextBox.TextProperty).UpdateSource(); 

問題是,這樣做,我的文本框需要有雙向綁定,所以我將它設置。 該控件使用非正統的IValueConverter,它不應該做一個ConvertBack,但是因爲我得到了一個雙向綁定...它被調用。

有沒有辦法禁用ConvertBack(),但讓Convert()完成它的工作?

感謝;)

+0

返回DependencyProperty.UnsetValue請發表您的XAML和任何代碼就可以,所以我們可以提供一個實用的(和測試)修復。 –

回答

1

應使用能處理兩個方向的轉換器...

子類現有的轉換器,並有ConvertBack隱藏現有(和返回的東西是無害的),而轉換隻是調用base.Convert。

+0

IValueConverter將字符串轉換爲7到21範圍內的整數。 所以ConvertBack不是一個選項。 – FatalBaboon

+0

因此,子類的ConvertBack應該返回不變的字符串。 –

+0

ConvertBack從TextBox獲取整數作爲參數,它沒有字符串,它應該將該int轉換爲字符串,但這是不可能的。 – FatalBaboon