将WPF DatePicker绑定到字符串属性[重复]
Posted
技术标签:
【中文标题】将WPF DatePicker绑定到字符串属性[重复]【英文标题】:binding WPF DatePicker to string property [duplicate] 【发布时间】:2019-12-15 22:12:01 【问题描述】:我想将DatePicker
绑定到viewmodel 的字符串属性。麻烦的是设置正确的字符串格式。将日期存储在字符串属性中是特定于问题的。
绑定工作正常,除了字符串格式。我的xml是:
<DatePicker SelectedDate="Binding Value, StringFormat=dd.MM.yyyy"/>
我期望字符串15.08.2019
,但字符串是8/15/2019 12:00:00 AM
[编辑] 此问题不重复。通过样式更改 DatePicker 的 TextBox 的字符串格式只会影响自身,不会影响绑定。
【问题讨论】:
见***.com/questions/3819832/… 通过样式改变 DatePicker 的 TextBox 的字符串格式只影响它自己,不影响绑定。 更改 ViewModel 以使其输出 ´´´DateTime´´´ 属性可能是一个更好的主意。您可以通过 ´´´DateTime.Parse´´´ 解析已有的字符串 不可能。一行是带有自定义对象的ExpandoObject
,具体取决于“列”的类型(Enum
)DataTemplateSelector
为单元格返回适当的编辑器...所有数据都存储在string
中。
【参考方案1】:
您需要更改 DatePickerTextBox 的模板
<DatePicker SelectedDate="Binding Path = Value, StringFormat = 0:dd.MM.yyyy">
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox" Text="Binding Path=SelectedDate, StringFormat = 0:dd.MM.yyyy, RelativeSource=RelativeSource AncestorType=x:Type DatePicker" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
【讨论】:
此 xaml 在 DatePiker 的编辑器中更改字符串格式,但不适用于 viewmodel 的属性。我已经尝试过这个解决方案,但它对我不起作用。以上是关于将WPF DatePicker绑定到字符串属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章
DatePicker 数据绑定将默认值设置为 1/1/0001 WPF c#
WPF datapicker控件绑定到数据库的日期属性,不能同步更改!