什么是处理基本上是字符串格式的计算属性的推荐方法?在View或ViewModel中?目前我已经看到了这个:
<StackPanel Orientation="Horizontal">
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text="Free Memory (KB): " />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text="{Binding MemoryRemain}" />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text=" / " />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text="{Binding MemoryTotal}" />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text=" (" />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text="{Binding MemoryRemainPercent}" />
<TextBlock Style="{StaticResource FootnoteTextStyle}" Text="%)" />
</StackPanel>
最好将它作为string类型的计算属性放在viewmodel中,然后只绑定一个TextBlock吗?
答案 0 :(得分:3)
在XAML中也可以使用string.format。我想你可以改写你的xaml:
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="Free Memory (KB): {0} / {1} ({2}%)">
<Binding Path="MemoryRemain" />
<Binding Path="MemoryTotal" />
<Binding Path="MemoryRemainPercent" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
IMO,它有点干净,因为你可以看到字符串作为一个整体,就像在代码中一样。我也同意slugster和Myles J格式化应该由视图完成。
答案 1 :(得分:2)
我同意slugster的评论“格式化任何值应该由View完成”。我只想补充一点,你总是可以编写一个自定义转换器来处理事物的格式化方面。
答案 2 :(得分:0)
我通常创建其他属性并将格式放在视图模型中的getter中。它是视图的模型,关注某些东西的显示方式。我想它也使显示格式可测试。