有没有人知道在使用x时格式化日期:在UWP Windows 10应用程序中绑定?
我有一个TextBlock绑定(x:Bind)到我的ViewModel上的DateTime属性,该属性从SQL读取.我想将输出格式化为"dd/MM/yyy HH:mm(ddd)".有一个简单的方法吗?
默认格式为"dd/MM/yyy HH:mm:ss",我认为它来自默认值.可能会被替换吗?
谢谢.
sib*_*bbl 23
使用a StringFormatConverter(检查你是否可以使用一些已经包含它的库,例如Cimbalino Toolkit):
public class StringFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
return null;
if (parameter == null)
return value;
return string.Format((string)parameter, value);
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
将其添加到您的页面资源
<Page.Resources>
<converters:StringFormatConverter x:Key="StringFormatConverter" />
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)
并像这样使用它
<TextBlock Text="{x:Bind Text, Converter={StaticResource StringFormatConverter}, ConverterParameter='{}{0:dd/MM/yyy HH\\\\:mm (ddd)}'}" />
Run Code Online (Sandbox Code Playgroud)
您可以使用
{x:Bind ViewModel.DateTimeProperty.ToString("....")}
Run Code Online (Sandbox Code Playgroud)
函数绑定是比经典 Converter 更好的方法:
<TextBlock Text="{x:Bind DateTimeToString(MyDateTime,'dd/MM/yyy HH\\\\:mm (ddd)')}" />
Run Code Online (Sandbox Code Playgroud)
隐藏代码(可以放在单独的类中):
//"Converter"
public string DateTimeToString(DateTime dateTime, string format) => dateTime.ToString(format);
public DateTime MyDateTime { get; set; } = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)