WPF DatePicker格式

Ind*_*ndu 5 c# vb.net wpf date-format

我从这个论坛得到了这个示例代码.

<DatePicker SelectedDate="{Binding myVideModelProperty}"
                Height="25" HorizontalAlignment="Left" Margin="81,-2,0,0" Name="myDatePicker" VerticalAlignment="Top" Width="115">
        <DatePicker.Resources>
            <Style TargetType="{x:Type DatePickerTextBox}">
                <Setter Property="Control.Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <TextBox x:Name="PART_TextBox" 
                                Text="{Binding Path=SelectedDate, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}, StringFormat={}{0:yyyy/MM/dd}}" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DatePicker.Resources>
    </DatePicker>
Run Code Online (Sandbox Code Playgroud)

但我希望格式即yyyy/MM/dd来自名为dateformat的应用程序属性.你能帮我把stringformat作为绑定到application属性吗?

Dav*_*ams 9

所有其他答案似乎有点复杂.它很简单:

<DatePicker SelectedDate="{Binding PropertyName, StringFormat=dd/MM/yyyy}"/>
Run Code Online (Sandbox Code Playgroud)

您需要做的就是调整字符串格式以适合自己.

  • 也许它可以在绑定为 String 时工作,但在 DateTime 时不起作用 (2认同)

小智 1

您可以为此使用转换器。或者您可以向您的类添加另一个属性,该属性将返回格式化的日期。

带转换器

public class DateFormatConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return string.Format(Application.DateFormat, value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)