在Silverlight中的XAML中声明DateTime

时间:2009-07-28 07:29:18

标签: silverlight silverlight-3.0

我成功地在Silverlight的XAML中创建了一些常量

  <sys:Boolean x:Key="foo">True</sys:Boolean>

但是,当我尝试对DateTime执行相同操作时(初始化一些DatePicker 对照)

<sys:DateTime x:Name="myDate"/>

系统抛出XamlParseException“未知元素:DateTime。[Line:xxx Position:xxx]”

有没有办法在XAML中声明DateTime常量(我在考虑DateTime.Now)?

4 个答案:

答案 0 :(得分:1)

在WPF中,您可以使用x:Static:

执行此操作
<FrameworkElement x:Key="dt" Tag="{x:Static s:DateTime.Now}" />

这是来自Charles Petzold的所有Xaml时钟: http://www.charlespetzold.com/blog/2006/04/070132.html

不幸的是Silverlight中没有静态标记属性,所以我不确定你是如何复制它的。真的很想看到答案!

答案 1 :(得分:1)

如果不编写代码,我不知道有什么方法可以做到。您必须在数据模型中公开DateTime.Now作为属性,并照常绑定它。

答案 2 :(得分:0)

我认为你只能设定具体日期:

> <telerikInput:RadDatePicker 
> SelectedDate="30/7/2009" />

答案 3 :(得分:0)

我可以想到2可能的方法:

1:(我不知道你能做到这一点直到现在):

<x:Code>
    <![CDATA[
    private DateTime m_MyDateTime = DateTime.Now;
    ]]>
</x:Code>

2. 您可以尝试创建一个继承自FrameworkElement的CustomControl,并公开DateTime DependencyProperty,以便您可以使用DataBind。

修改

我不是百分之百确定这两种方法是否适用于Silverlight,我只是根据我在WPF客户端应用程序方面的经验提供解决方案。