是否可以自動格式化日期選擇器的文本框中的用戶輸入日期?wpf mvvm datepicker文本框自動格式
我有以下代碼
<Style TargetType="{x:Type DatePicker}">
<Setter Property="Foreground" Value="{DynamicResource TextBrush}"/>
<Setter Property="IsTodayHighlighted" Value="True"/>
<Setter Property="SelectedDateFormat" Value="Short"/>
<Setter Property="Padding" Value="2"/>
<Setter Property="CalendarStyle" Value="{DynamicResource DatePickerCalendarStyle}" />
</Style>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Foreground" Value="{DynamicResource TextBrush}"/>
<Setter Property="Padding" Value="2"/>
<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 Height="25" HorizontalAlignment="Left" Margin="518,34,0,0" Name="DateThru" VerticalAlignment="Top" Width="115" SelectedDate="{Binding DateThruSelected, Mode=TwoWay}" IsEnabled="{Binding DateThruIsEnabled}" >
</DatePicker>
所以兩個問題。 第一個 當我進入文本框「030613」或「03062013」並點擊通過時,我希望它自動在數據選擇器的文本框中被格式化爲「03/06/2013」。
第二我期待SelectedDate屬性設置爲「03/06/2013」。 (如果我從嵌入式日曆中選擇一個日期,SelectedDate綁定可以正常工作)。
我在這裏發佈的當前代碼沒有這兩者。 任何想法如何實現這兩個目標?
在此先感謝!
嗨,大衛,謝謝你的回覆。當我嘗試在文本框中格式化輸入日期時,我無法訪問DatePicker中嵌入的DatePickerTextBox。所以我的頭號問題變成了如何訪問DatePicker中嵌入的DatePickerTextBox。 – Shawn
由於你有兩個類的實例,必須有一些地方(共同的父母),他們都看到他們。從那裏進行初始化? –
我通過從事件處理程序中的routedeventargs中獲取texbox解決了這個問題。謝謝您的幫助。 – Shawn