silverlight - usar - mostrar fecha y hora en datetimepicker c#
¿Cómo cambiar el formato de fecha en el control Silverlight DatePicker? (5)
Esto funciona genial:
<my:DatePicker IsTodayHighlighted="True" Width="200">
</my:DatePicker>
Pero quiero formatear la fecha, algo como esto:
<my:DatePicker IsTodayHighlighted="True" Width="200" Format="yyyy-mm-dd">
</my:DatePicker>
Alguien sabe la sintaxis para esto?
Silverlight DatePicker tiene una propiedad SelectedDateFormat en él, esto puede ser lo que está buscando.
Desafortunadamente, el control DatePicker actualmente no admite formatos gratuitos de DateTime.
Si esto es algo que le interesa ver ayuda en la versión futura de DatePicker, cree una solicitud de función codeplex que lo sugiera. http://silverlight.codeplex.com/WorkItem/Create.aspx
Solo para señalar que los nuevos controles de Silverlight Toolkit de marzo de 2009 TimePicker y TimeUpDown admiten una amplia gama de opciones de globalización. Uno de ellos incluye formatos gratuitos de DateTime. Entonces, es solo cuestión de interés público si transferimos esa capacidad a DatePicker o no. Eche un vistazo al formato de TimePicker @ http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimePicker
Mientras tanto, la mejor solución es cambiar la cultura local o el formato en la cultura local.
public App()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-NL");
o cambie el formato en la cultura local.
public App()
{
Thread.CurrentThread.CurrentCulture = (CultureInfo) Thread.CurrentThread.CurrentCulture.Clone();
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "D/m/yyyy";
Podrías simplemente esconder el cuadro de texto de controles (con un ancho más pequeño), exponer tu propio (opcionalmente establecer el IsEnabled en falso) y usar un enlace de elementos y un convertidor. Si está utilizando MVVM, configure el DataContext en su ViewModel. Supongo que otra opción sería sobrescribir DataTemplate para no incluir el cuadro de texto y hacer la misma idea.
<StackPanel Orientation="Horizontal" Height="22">
<TextBox x:Name="textBox2" Width="106" Text="{Binding ElementName=datePicker2, Path=SelectedDate, Mode=TwoWay, Converter={StaticResource internationalDateTimeFormatConverter}}" />
<controls:DatePicker x:Name="datePicker2" IsTabStop="False" SelectedDate="{Binding TargetDatePicker, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" Width="23" HorizontalAlignment="Left" />
</StackPanel>
ACTUALIZACIÓN: el enlace de TwoWay desde el cuadro de texto al selector de fecha funciona bien, pero no actualiza la propiedad ViewModel. Así que voy a configurar IsEnabled = False y llamarlo bueno.
Debe definir una plantilla de control personalizada y editar el cuadro de texto del control datepicker para formatear el texto.
Noté que esta es una pregunta respondida.
Pero me gustaría notificar sobre este enlace a un juego de herramientas de control de Silverlight 5 que he comenzado a crear recientemente. Contiene (entre otros controles) un control DateTimeBox en el que puede manejar tanto la fecha como la hora dentro del mismo control. En este punto, todavía está en desarrollo, pero debería ser utilizable para la mayoría de los escenarios.