我正在使用可用于Windows 8.1和Windows Phone 8.1的新Windows Store Universal App模板,并且想知道如何在XAML代码中格式化字符串。
我尝试过的(XAML):
<TextBlock Text="{Binding TestItem.CurrentDate, StringFormat={}{0:MM/dd/yyyy}}" />
问题是StringFormat
中没有Windows.UI.Xaml.Controls.TextBox
。
Microsoft已创建sample project,这与格式化日期有关。但是那里使用的方法基于(丑陋的)代码。
所以,这是我的问题:
StringFormat
在Windows应用商店应用中不可用?<小时/> 修改 我决定使用转换器解决方案,因为这里感兴趣的是代码:
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
return null;
if (!(value is DateTime))
return null;
var dateTime = (DateTime)value;
var dateTimeFormatter = new DateTimeFormatter(YearFormat.Full,
MonthFormat.Full,
DayFormat.Default,
DayOfWeekFormat.None,
HourFormat.None,
MinuteFormat.None,
SecondFormat.None,
new[] { "de-DE" },
"DE",
CalendarIdentifiers.Gregorian,
ClockIdentifiers.TwentyFourHour);
return dateTimeFormatter.Format(dateTime);
}
public object ConvertBack(object value, Type targetType, object parameter,
string language)
{
throw new NotImplementedException();
}
}
我很高兴每一条建议如何改进上面的代码,随时发表评论。
感谢MikaelDúiBolinder和Martin Suchan的建议/回答。
答案 0 :(得分:7)
Windows运行时项目类型中的DataBinding不支持StringFormat属性,您拥有的选项是: