我有一个组合框,我想把它绑定到一个日期时间对象列表上,但我想以短时格式显示日期时间对象。我很确定我需要使用某种形式的数据模板,但我不知道如何在数据模板中绑定到日期时间对象的ToShortTime方法。
谁能告诉我正确的方向?
假设你使用的是SP1的.NET 3.0或3.5,你可以简单地使用StringFormat来指定格式,例如。
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat='{}{0:t}'}" />
将显示当前日期时间与短时格式('t'标准日期时间格式修饰符,与调用DateTime.Now.ToString("t")完全相同)。
编辑:如果你已经在一个有DateTime作为DataContext的数据模板中,只要使用。
<TextBlock Text="{Binding StringFormat='{}{0:t}'}" />
你可以在绑定上设置转换器属性。实现IValueConverter来使其改变为字符串。在这里,你可以实现IValueConverter来改变字符串。MSDN文档 对于IValueConverter其实以这个为例。
有一个名为:
Combobox.ItemStringFormat
这里你可以像往常一样提供Stringformat。不需要为此对项目进行Datatemplate。
<ComboBox ItemsSource="{Binding MyDates}"
ItemStringFormat="yyyy-MM-dd" />