2011-03-23 333 views
10

我知道,當即將顯示數據時,將調用Convert()方法來轉換數據,並轉換顯示轉換後的數據。什麼時候ConvertBack方法被調用?

我想知道何時調用ConvertBack()方法?它的目的是什麼?

我有DataGridItemSource被綁定到一些集合,我已經實現了IValueConverter集合中的項目的一個屬性。當我製作IsReadOnly="True"(在DataGrid)時,如果雙擊單元格(爲其實現IValueConverter)然後更改焦點,則會調用ConvertBack方法。但是當我做IsReadOnly="False",那麼ConvertBack方法永遠不會被調用,無論我如何處理DataGrid及其單元格。

請解釋DataGrid單元的這種行爲和ConvertBack方法的IValueConverter

+1

這就是所謂的綁定時的結合模式是雙向(對於TextBox.Text和可能是CheckBox.IsChecked默認模式)。如果你明確設置了OneWay,我想這個方法不會被調用。 – vorrtex 2011-03-23 13:16:22

+0

我也有這個問題。如果我直接綁定到'DataTable',則源代碼將在'CellEditEnding'上更新。如果我綁定到一個不同類型的對象,並在綁定中使用轉換器將其轉換爲'DataTable',則''ConvertBack''永遠不會被調用。含義用戶編輯不會傳播到源代碼。我想知道是否需要派生自己的'DataTable'併爲其添加某種通知邏輯。如果我找到解決方案,將會發布。 – 2011-05-11 09:44:00

回答

8

「數據綁定引擎在將值從綁定目標傳播到綁定源時調用此方法。」

看到msdn

你應該張貼您爲您的小區,其valueconverter

+1

所以如果你不想讓它傳播回到源代碼,你可以使綁定Mode = OneWay? – steviesama 2015-10-12 23:54:04

相關問題