我的DatePicker在wp8中没有SelectedDate属性

时间:2014-02-15 08:18:45

标签: c# windows-phone-8 datepicker

我的工具包有问题:DatePicker,没有SelectedDate属性。我试过把

xmlns:sys="clr-namespace:System;assembly=mscorlib" 

在XAML内部。我该怎么解决它。我正在使用Windows Phone 8。

<grid>
<toolkit:DatePicker x:Name="datePicker" Foreground="Gray" Header=""  Margin="0,364,10,362" Value="10/10/2010" ValueChanged="datePicker_ValueChanged"/>
</grid>

2 个答案:

答案 0 :(得分:1)

DateTime.Now是静态属性,因此您可以使用x:Static标记扩展名进行绑定,如下所示:

<toolkit:DatePicker xmlns:sys="clr-namespace:System;assembly=mscorlib"
                    Value="{x:Static sys:DateTime.Now}"/>

sys对应于声明DateTime的System命名空间。


我希望WP8中存在StaticResource。如果是,上面也可以这样模拟:

<Grid xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Grid.Resources>
     <sys:DateTime x:Key="CurrentDateTime"/>
  </Grid.Resources>
  <toolkit:DatePicker Value="{Binding Path=Now,
                        Source={StaticResource CurrentDateTime}, Mode=OneWay}"/>

</Grid>

PS - 在任何你想要的地方定义资源(我使用Grid来描述它只在父元素中的某个地方声明)。


如果上面似乎不起作用(理想情况下它应该有),我建议在DataContext类中使用包装器属性,它将返回今天的DateTime并与它绑定

    public DateTime CurrentDateTime
    {
        get
        {
            return DateTime.Now;
        }
    }

并直接绑定它:

<toolkit:DatePicker Value="{Binding Path=CurrentDateTime, Mode=OneWay}"/>

答案 1 :(得分:0)

默认情况下,WP8工具包DatePicker将当前日期显示为选定日期。 如果要设置任何其他日期,可以使用DatePicker的value属性进行设置。 如果您想要检索所选日期,则可以使用DataPicker.Value并根据需要进行投射。