数据绑定-Silverlight转换器,用于将对象转换为字符串并返回



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

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

当我想转换回字符串时,我的问题就出现了。我希望更新现有的Address对象,但找不到方法。我认为您可以传递回一个新的Address对象,但这不是我想要的。

我走在了正确的道路上,或者有没有比使用ValueConverter更好的方法。

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

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

最新更新