将字符串绑定到WPF中日期选择器选定的日期



我有一个字符串,我将其转换为日期格式类型(dd/mm/yyyy)为15/08/2016 11:00:00 AM

我想将此绑定到Datetime Picker Selected Date,如下所示

var MyDate= "15/08/2016 11:00:00 AM";
DateTimePicker1.SelectedDate = DateTime.ParseExact(MyDate,"dd/mm/yyyy",
CultureInfo.InvariantCulture);

如果我这样做

 DateTimePicker1.SelectedDate = DateTime.Now;

这工作完美。我该怎么做呢?

你必须为DatePickerTextBox指定一个样式

在您的窗口中,在<Grid>开始之前,使用此代码定义DatePickerTextBox的样式

<Window.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>
    </Window.Resources>

在上面的代码中,您应该关注的行是

Text="{Binding Path=SelectedDate, StringFormat='dd/mm/yyyy'

如果您看到,您可以为出现在此DatePickerTextBox中的文本定义字符串格式。

现在您应该运行仅使用

的代码版本。
DateTimePicker1.SelectedDate = DateTime.Now;

这行代码,而不是其他三条语句。此代码应按照您在上述代码行中指定的格式格式化字符串。

试试:

DateTime.ParseExact("15/08/2016 11:00:00 AM", "dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

我添加了tt AM/PM格式

编辑:

<DatePickerTextBox Text="{Binding Date1, StringFormat='dd/MM/yyyy HH:mm:ss tt'}"></DatePickerTextBox>

相关内容

  • 没有找到相关文章

最新更新