Datepicker 输出格式 Datagrid wpf
Posted
技术标签:
【中文标题】Datepicker 输出格式 Datagrid wpf【英文标题】:Datepicker Output Format Datagrid wpf 【发布时间】:2017-06-08 06:10:32 【问题描述】:我尝试获得一个像“01.01.1999”这样的简单格式 - 但总是在结束后编辑结果(视觉和真实)值是“01/01/1999 12:00:00 AM”)看起来像,即忽略“StringFormat='dd MM yyyy'”。我该如何解决这个问题?
<DataGridTemplateColumn Header="von">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Binding=von, StringFormat='dd MM yyyy'"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="Binding von, StringFormat='dd MM yyyy'"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
【问题讨论】:
【参考方案1】:你试过了吗?:
<DatePicker SelectedDate="Binding von">
<DatePicker.Resources>
<Style TargetType="x:Type DatePickerTextBox">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox" Text="Binding Path=SelectedDate, StringFormat='dd MM yyyy',
RelativeSource=RelativeSource AncestorType=x:Type DatePicker" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
...或这里的任何其他建议?:
Changing the string format of the WPF DatePicker
【讨论】:
谢谢,我之前试过.. 同样 - 通过使用“SelectedDateFormat”,我可以使用“StringFormat='dd MMM yyyy'”设置格式,但它只在编辑模式下显示【参考方案2】:解决方案非常简单:
我将“von”从“String”更改为“DateTime”
public DateTime von get; set; = DateTime.Now;
最后这对我有用:
<DataGridTemplateColumn Header="von">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Binding von, StringFormat='dd MM yyyy'"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="Binding von"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
【讨论】:
以上是关于Datepicker 输出格式 Datagrid wpf的主要内容,如果未能解决你的问题,请参考以下文章
使用 TextBox 和 DatePicker 元素过滤 WPF DataGrid 行
WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示