C# 使用UWP和x:Bind的字符串格式
有人知道在UWP Windows 10应用程序中使用x:Bind时如何格式化日期吗 我有一个TextBlock,它被绑定(x:Bind)到我的ViewModel上的DateTime属性,该属性是从SQL读取的。我想将输出格式化为“dd/MM/yyy HH:MM(ddd)”。有没有一个简单的方法可以做到这一点 默认格式是“dd/MM/yyy HH:MM:ss”,我认为这是默认格式。这个可能会被替换吗C# 使用UWP和x:Bind的字符串格式,c#,xaml,uwp,C#,Xaml,Uwp,有人知道在UWP Windows 10应用程序中使用x:Bind时如何格式化日期吗 我有一个TextBlock,它被绑定(x:Bind)到我的ViewModel上的DateTime属性,该属性是从SQL读取的。我想将输出格式化为“dd/MM/yyy HH:MM(ddd)”。有没有一个简单的方法可以做到这一点 默认格式是“dd/MM/yyy HH:MM:ss”,我认为这是默认格式。这个可能会被替换吗 谢谢。使用StringFormatConverter(检查您是否可能使用一些已经包含它的库,例如(
谢谢。使用
StringFormatConverter
(检查您是否可能使用一些已经包含它的库,例如(谢谢,@maxp)或更旧的库):
将其添加到页面资源中
<Page.Resources>
<converters:StringFormatConverter x:Key="StringFormatConverter" />
</Page.Resources>
像这样使用它
<TextBlock Text="{x:Bind Text, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd/MM/yyy HH\\\\:mm (ddd)}'}" />
您可以使用
{x:Bind ViewModel.DateTimeProperty.ToString("....")}
是比经典转换器更好的方法:
代码隐藏(可以放在单独的类中):
/“转换器”
公共字符串DateTimeToString(DateTime DateTime,字符串格式)=>DateTime.ToString(格式);
public DateTime MyDateTime{get;set;}=DateTime.Now;
为什么它比经典转换器更好?
- 较短->无编结代码
- 强类型->在生成时检测异常
{x:Bind ViewModel.DateTimeProperty.ToString("....")}