2015-04-21 152 views
0

我有一个数据网格绑定到WPF中的xml文件。我无法弄清楚如何格式化出现在我的DataTextColumns中的日期。我试过转换器和'stringformat = d',似乎没有任何工作。有任何想法吗?WPF DataGrid中的日期文本格式绑定到XML文件

“生日”文本列中的数据显示为'dd/mm/yyyy hh:mm:ss AM/PM',因为它是如何存储在xml文件中的。

但是我希望它显示为'dd/mm/yyyy'。

这是我的xaml。这是一个简单的绑定,不需要任何代码。

<DataGrid Name="currentCrewGrid" DataContext="{StaticResource CrewInfo}" ItemsSource="{Binding XPath=/Names/Name[@isActive\=\'True\']}" AutoGenerateColumns="False" > 
<DataGrid.Columns> 
    <DataGridTextColumn IsReadOnly="True" Header="Birthday" Binding="{Binding XPath=Birthday}"/> 
</DataGrid.Columns> 
</DataGrid> 
+0

日期以字符串形式出现,所以在使用格式字符串之前,需要将其转换为有效的DateTime对象。将XML序列化为对象并绑定到对象可能会更有成效。 – slugster

回答

1

您可以使用Converter for Birthday列来将日期转换为所需的格式。

Binding="{Binding XPath=Birthday, Converter={StaticResource birthdayConverter}}" 

public class BirthdayConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     //Convert date to desired format. 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     // Convert back. 
    } 
} 
+0

正常情况下,我会投下任何刚刚说“使用转换器”的人,当绑定中的StringFormat将完成这项工作时。你说得对,但没有解释为什么在这种情况下必要。 – slugster

+0

就是这样。我之前一定是做了一些错误的事情。谢谢 – Tronald