Silverlight转换器将对象转换为字符串并返回

时间:2011-06-06 09:52:46

标签: silverlight data-binding ivalueconverter

我的模型中有一个Address对象,它有6个地址行作为单独的属性。在我的Silverlight视图中,我希望它显示在多行文本框中,并使用数据绑定进行更新。

View链接到一个ViewModel,它具有一个始终设置的Address属性。我的第一个想法是使用一个最初很好的ValueConverter,因为它可以获取一个Address对象并传回一个显示的字符串。

当我想要ConvertBack字符串时,我的问题出现了。我希望更新现有的Address对象,但无法找到执行此操作的方法。我想你可以传回一个新的Address对象,但这不是我想要发生的事情。

我在这里是正确的轨道,或者有比使用ValueConverter更好的方法。

1 个答案:

答案 0 :(得分:0)

你几乎走在正确的轨道上!您的观察是正确的ConvertBack方法需要创建一个新的Address实例。您无法获得转换器中原始地址的引用,绑定框架不允许这种紧耦合。

使用MVVM怎么样?创建一个ViewModel,它将您的地址公开/调整为字符串,基本上执行您的值转换器的角色。当TwoWay绑定更新此字符串属性时,ViewModel可以更新它适应的地址。