我的 UWP 项目中有一个 NumberBox
控件。
我想用它来显示分钟数,所以我希望盒子上的数字后跟“分钟”(例如“10 分钟”)。
我以为我可以使用 NumberFormatter
来实现它,但不知道如何实现。
这是我尝试过的:
- 添加了
NumberFormatter
类
public class DurationFormatter : INumberFormatter2
{
public string FormatInt(long value)
{
return $"{value} min";
}
public string FormatDouble(double value)
{
return $"{value} min";
}
public string FormatUInt(ulong value)
{
return $"{value} min";
}
}
- 添加了对页面资源的引用
<Page.Resources>
<local1:DurationFormatter x:Key="Converter1"/>
</Page.Resources>
- 尝试将格式化程序添加到数字框,但不确定如何操作。这行不通:
<muxc:NumberBox x:Name="DurationNumberBox" SpinButtonPlacementMode="Compact"
Header="Duration" Value="{x:Bind DurationViewValue, Mode=TwoWay}"
ValidationMode="InvalidInputOverwritten"
NumberFormatter="{StaticResource Converter1}"/>
感谢任何帮助。
最佳答案
我有一段时间遇到了同样的问题,结果证明问题是转换器类必须实现 INumberFormatter2
和 INumberParser
。除 in this comment in the source code of the NumberBox
外,其他地方均未记录此内容.
关于c# - 如何使用 UWP NumberBox 实现 NumberFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63543086/