2011-12-27 178 views
0

我正在使用datepicker和textbox在同一行中的应用程序。根据类型的变化,我正在折叠文本框并显示日期选择器。问题是,当我让datepicker可见并且用户选择日期时,日期在datepicker中不可见。我正在使用的代码是DatePicker不显示日期

<StackPanel Orientation="Horizontal" Name="StackPanel3"> 
     <Grid> 
     <toolkit:DatePicker x:Name="DatePicker" Visibility="Collapsed"FontSize="32" Width="405" Value="{Binding RecordItem,Converter={StaticResource RecordAndTypeFieldValueConverter},ConverterParameter=RE2, Mode=TwoWay}" ValueStringFormat="{}{0:d}"/> 
     <TextBox Name="TextBox" TextWrapping="Wrap" Text="{Binding RecordItem,Converter={StaticResource RecordAndTypeFieldValueConverter},ConverterParameter=RE2, Mode=TwoWay}" TextAlignment="Left" FontSize="32" Width="405" /> 
    </Grid> 
<Image x:Name="i2" HorizontalAlignment="Left" Height="54" Margin="0,8,0,0" VerticalAlignment="Top" Width="59" Source="/Icons/play.png" MouseLeftButtonUp="FieldTools_Click"/> 
</StackPanel> 

在转换器中我将字符串值返回给datepicker的值。

+0

你也应该发布你的转换器的代码,我认为你的问题在那里。而萨姆答案似乎是正确的。 – BigL 2011-12-27 09:18:26

回答

1

您需要将textbox.text(串)值转换为DateTime值

例如,如果你正在使用DDMMYY格式(21JAN12),你可以这样做:

using System.Globalization; 


    string date = TextBox1.Text.Trim().ToUpper(); 
       Date Time myDate= DateTime.ParseExact(date, "ddMMMyy", CultureInfo.InvariantCulture); 
       DatePicker1.Value = myDate; 

或者你可以指定您希望的日期的其他任何格式。

我更改了TextBox1和DatePicker1的上述代码,因为通过控件名称命名这些东西并不是一个好主意。

0

我不是Windows Phone开发专家,所以只是猜测。 通常当控件的值无效时发生。你确定DateTimePicker接受string类型值吗?对我来说,它应该是DateTime类型。如果是的话,你确定格式的的数据是否正确。 ?