Объявить DateTime в XAML в Silverlight

Я успешно создал такие константы в XAML Silverlight

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

Однако, когда я пытаюсь сделать то же самое с DateTime (для инициализации некоторых DatePicker элементов управления)

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

система выдает XamlParseException "Неизвестный элемент: DateTime. [Строка: xxx Position: xxx]"

Есть ли способ объявить DateTime константы (я думаю о DateTime.Now) в XAML?


person R4cOOn    schedule 28.07.2009    source источник


Ответы (4)


В WPF это можно сделать с помощью x: Static:

<FrameworkElement x:Key="dt" Tag="{x:Static s:DateTime.Now}" />

Это все часы Xaml Чарльза Петцольда: http://www.charlespetzold.com/blog/2006/04/070132.html

К сожалению, в Silverlight нет атрибута статической разметки, поэтому я не уверен, как это воспроизвести. Хотя бы очень хотелось увидеть ответ!

person James Cadd    schedule 28.07.2009
comment
здорово. Я изучал этот вариант, но не думал, что он сработает. - person Scott Marlowe; 28.07.2009

Я не знаю, как это сделать без написания кода. Вам нужно будет предоставить DateTime.Now как свойство в вашей модели данных и выполнить привязку к нему как обычно.

person Pavel Minaev    schedule 30.07.2009

я думаю, вы можете установить только определенные даты:

> <telerikInput:RadDatePicker 
> SelectedDate="30/7/2009" />
person shinji14    schedule 30.07.2009

Я могу придумать 2 возможных способа сделать это:

1: (до сих пор я не знал, что вы можете это сделать):

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

2. Вы можете попробовать создать CustomControl, который наследуется от FrameworkElement, и предоставить DateTime DependencyProperty, чтобы вы могли привязать к нему DataBind.

РЕДАКТИРОВАТЬ:

Я не уверен на 100%, что любой из подходов будет работать в Silverlight, я просто предлагаю решение, основанное на моем опыте работы с клиентскими приложениями WPF.

person Mark Carpenter    schedule 10.08.2009