2011-06-06 142 views
1

我的模型中有一個Address對象,它具有6個地址線作爲單獨的屬性。在我的Silverlight視圖中,我希望將其顯示在多行文本框中,並使用數據綁定進行更新。Silverlight轉換器將對象轉換爲字符串並返回

該視圖鏈接到ViewModel,該ViewModel具有始終設置的Address屬性。我的第一個想法是使用一個最初好的ValueConverter,因爲它可能需要一個Address對象並傳回一個顯示的字符串。

當我想要ConvertBack字符串時出現問題。我想更新現有的地址對象,但無法找到一種方法來做到這一點。我認爲你可以傳回一個新的地址對象,但這不是我想要發生的事情。

我在這裏的正確軌道或是否有比使用ValueConverter更好的方法。

回答

0

你幾乎在這裏正確的軌道上!你的觀察正確,ConvertBack方法需要創建一個新的地址實例。您無法獲得轉換器中原始地址的引用,綁定框架不允許這種緊密耦合。

如何使用MVVM?創建一個ViewModel作爲一個字符串公開/適應你的地址,基本上扮演你的價值轉換器的角色。當TwoWay綁定更新此字符串屬性時,ViewModel可以更新它所適應的地址。

+0

我正在使用MVVM,但因思考轉換器而被擱置。我使用轉換器的原因是減少了所需的代碼量(即不需要視圖模型上的額外屬性),並有助於在其他視圖中重新使用(即,只要需要,只需在視圖中指定轉換器)即可。這看起來不太可能,所以我會使用你的方法,並儘可能使它變得乾淨。謝謝。 – 2011-06-06 10:40:15