【发布时间】:2016-01-19 05:24:54
【问题描述】:
我试图在 WPF 中动态选择第四个十进制数。我知道使用String.Format() 我们可以,但是如何选择第四位或第五位小数,但我不明白。我尝试了很多类型,但仍然没有找到任何解决方案。我还需要使用数据绑定来获取数据。
我的最终输出是如图所示。所以我需要选择最后两位数字以使其字体大小更大并且还使用BaselineAlignment="Superscript"。
这是我的 xaml 代码“check at Binding Ask”和stringformat只需运行代码即可了解。
' <DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="OnBuyClicked">
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<TextBlock Background="{Binding Ask, Converter={StaticResource makeBrush}}" Foreground="White" FontSize="18" >
<TextBlock Text="{Binding Ask, StringFormat=0.###}"/>
<Run Text="{Binding Ask,StringFormat='{}{0:###01}'}" FontSize="28" />
<Run Text="{Binding Ask,StringFormat=#}" FontSize="8" BaselineAlignment="Superscript" />
</TextBlock>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>'
【问题讨论】:
-
听起来你需要一个自定义绑定,我不相信你可以使用 WPF 的内置数据绑定语法来做到这一点。
-
感谢您的回复,我不知道如何使用自定义绑定。你能帮我或给我一些例子吗?这会更有帮助。
-
嗯,他们对此有什么确切的解决方案吗?怎么办?
-
很遗憾,您的问题根本不清楚。首先这个数字到底在哪里?它应该在模型数据结构中;鉴于此,约束与这个问题有什么关系?为什么不直接从模型中提取数字?选择第四位数字与您还描述的格式问题有何关系?您可能需要使用
RichTextBox或类似名称来完成后者,但如果没有更多详细信息,则无法具体说明如何。 -
请通过添加一个很好的minimal reproducible example 来改进您的问题,该minimal reproducible example 显示了您到目前为止所拥有的内容,并准确解释了您希望该代码做什么而它现在没有做什么。