WP7 - 数据绑定+斜体+ Wordwrap问题

时间:2011-04-11 20:22:18

标签: silverlight data-binding windows-phone-7

这是我想要做的。我似乎无法找到解决方案:

  • 我有来自web服务的2个字符串数据源,并且在前端我想将它们组合成用逗号分隔的单个句子。
  • 我想要的第一部分是普通字体,第二部分我想用斜体
  • 我也希望句子能够自动换行
  • 我正在使用MVVM所以我想要一些如何将这些字符串数据源绑定到一个文本块的方法...

我希望能够处理的案例:

正常:
恩。这是句子第1部分,这是句子第2部分

没有第二部分所以没有逗号
恩。这是句子第1部分我还是希望这个能够 自动换行

第二部分单词包装
恩。这是句子第1部分,这是句子
第2部分包装到第二行

另外

  • 仅使用自动换行的第二部分
  • 第一部分wordwraps后跟第二部分

似乎没有简单的解决方案。 我能想到的那个有一个PropertyChangedEventHandler,它会在从web服务器返回这些字符串时通知我,然后在代码隐藏中格式化字符串...

1 个答案:

答案 0 :(得分:2)

为了达到这样的效果,您尝试使用斜体格式实现连续自动换行,只有使用<Run>中的TextBlock元素才能明智地实现。但是,您无法绑定Run元素的内容,因此您需要在代码中创建它。

假设您从Web服务获得两个单独的响应(它们不会从单个调用返回),那么您不能依赖首先进入哪个响应,因此我将使用事件聚合来通知视图收到所有必要数据后的视图模型。 PRISM library for WP7包含一个可以用来实现效果的实现(请注意,WP7的PRISM比它的WPF或Silverlight对应的 轻)。

为了响应该事件,您的视图可以从视图模型中提取属性,创建TextBlock及其组件Run元素,然后相应地进行更新。实际上,当您使用PRISM订阅事件时,您可以指定该事件的处理程序在UI线程上运行,这无疑会有所帮助。