WPF 数据网格中的日期格式
我想将日期列从格式“DD/MM/YYYY HH:MM:SS”更改为“DD.MM.YYYY”。
<DataGrid Name="dgBuchung" AutoGenerateColumns="True"
ItemsSource="{Binding}" Grid.ColumnSpan="3" >
<ab:DataGridTextColumn Header="Fecha Entrada" Width="110"
Binding="{Binding date, StringFormat={}{0:dd/MM/yyyy}}" IsReadOnly="True" />
</DataGrid>
不幸的是,该代码抛出了 XMLParseException
。
首先,使用 AutoGenerateColumns 时这种解决方案是否可行? 如果不是,我还能怎样尝试处理这个问题?
如果是,上面的代码有什么问题?
I want to change is the date column from a format "DD/MM/YYYY HH:MM:SS" to "DD.MM.YYYY".
<DataGrid Name="dgBuchung" AutoGenerateColumns="True"
ItemsSource="{Binding}" Grid.ColumnSpan="3" >
<ab:DataGridTextColumn Header="Fecha Entrada" Width="110"
Binding="{Binding date, StringFormat={}{0:dd/MM/yyyy}}" IsReadOnly="True" />
</DataGrid>
Unfortunately that code throws an XMLParseException
.
First of all, is this way of solution possible while using AutoGenerateColumns?
If no, how else can I try to handle this?
If yes, what is the problem with the code above?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
不要忘记使用 DataGrid.Columns,所有列都必须位于该集合内。
在我的项目中,我的日期格式有点不同:
使用 AutoGenerateColumns,您将无法控制格式,因为 DataGird 将添加自己的列。
Don`t forget to use DataGrid.Columns, all columns must be inside that collection.
In my project I format date a little bit differently:
With AutoGenerateColumns you won`t be able to contol formatting as DataGird will add its own columns.
在这里聚会已经很晚了,但以防万一其他人偶然发现此页面...
您可以通过在 XAML 中设置 AutoGenerateColumn 处理程序来完成此操作:
然后在后面的代码中执行如下操作:
Very late to the party here but in case anyone else stumbles across this page...
You can do it by setting the AutoGeneratingColumn handler in XAML:
And then in code behind do something like this:
如果您的绑定属性是 DateTime,那么您所需要的就是
If your bound property is DateTime, then all you need is
首先选择datagrid,然后转到属性找到Datagrid_AutoGenerateColumn并双击
然后使用这段代码
我尝试一下它可以在WPF上运行
first select datagrid and then go to properties find Datagrid_AutoGeneratingColumn and the double click
And then use this code
I try it it works on WPF
我知道接受的答案很旧,但是有一种方法可以使用 AutoGeneratColumns 控制格式:
首先创建一个在生成列时触发的函数:
然后检查生成的列的类型是否为 DateTime 并更改其 String格式为“d”以删除时间部分:
I know the accepted answer is quite old, but there is a way to control formatting with AutoGeneratColumns :
First create a function that will trigger when a column is generated :
Then check if the type of the column generated is a DateTime and just change its String format to "d" to remove the time part :
这是一个很老的问题,但我找到了一个新的解决方案,所以我写了它。
是的,可以使用 AttachedProperty 来完成此操作,如下所示。
AttachedProperty
定义了两个 AttachedProperty,允许您指定两种格式。
DateTimeFormatAutoGenerate
用于DateTime
,TimeSpanFormatAutoGenerate
用于TimeSpan
。如何使用
视图
ViewModel
demo_wpf_datagrid
This is a very old question, but I found a new solution, so I wrote about it.
Yes, that can be done with AttachedProperty as follows.
AttachedProperty
There are two AttachedProperty defined that allow you to specify two formats.
DateTimeFormatAutoGenerate
forDateTime
andTimeSpanFormatAutoGenerate
forTimeSpan
.How to use
View
ViewModel
demo_wpf_datagrid