首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVVM跨平台场景中标记文本

在MVVM跨平台场景中标记文本
EN

Stack Overflow用户
提问于 2017-10-19 20:07:15
回答 1查看 96关注 0票数 0

我们有一个产品,它通过一个PCL使用模型和ViewModels的共享代码库,支持iOS、Android和Windows。

我有一些来自ViewModels的字符串属性的示例,这些属性将受益于使用不同格式(如粗体或红色)选择字符串的不同部分。

一个例子是这个字符串,它是一个部件被发出的次数。ViewModel中的属性是

5项中的0项

然而,有时财产需要说

第五期的最后一期!重新点菜!

虽然这两个值都来自IssueState属性,但在粗体中显示!Reorder!或前景为红色的"5中5“可能会很有用。

另一个例子是FoundIn属性的SearchResultViewModel,其中的值是

在姓名、地址和地位上找到

在这里,我们想用粗体显示“名称”、“地址”和“状态”部分

可在NameAddressStatus中找到

我不想把这个属性分割成多个属性,因为它很笨重,并且扰乱了IMHO,ViewModel

如何解决这一问题的建议?我也不想在ViewModels中嵌入太多的UI格式

我目前的想法是复制iOS SDK的NSAttributedString及其关联的“属性”的范围属性。NSAttributedString是非常以UI为中心的,所以我会允许更多的格式设置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-23 06:45:57

最后,我选择了一个AttributedStringViewModel,它将文本保存为字符串,然后具有一个StringFormattingAttribute列表的只读属性(设置为ctor)。

代码语言:javascript
复制
public class StringFormattingAttribute
{
    public StringFormattingAttribute(FormattingType type, FormattingRange range)
    {
        this.Type = type;
        this.Range = range;
    }

    public FormattingType Type { get; }

    public FormattingRange Range { get; }
}

FormattingRange类保存StringFormattingAttribute应用到的文本字符串的起始和结束位置。

在iOS中,我有一个要转换为NSAttributedString的MVVMCross转换器

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46838110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档