2017-01-04 11 views
0

У меня есть форма с несколькими RadDatePicker, каждая вещь работает нормально, но когда я хочу ввести дату, я хочу, чтобы конечный пользователь вводил дату в формате dd/mm/yyyy НО, но инструмент принимает только дату в формат mm/dd/yyyy order !!WPF RadDatePicker Введите дату заказа

Пример: 13/12/2016 Если пользователь вводит 13, затем нажмите пробел, затем введите 12 и нажмите пробел +2016 нажмите клавишу ВВОД Это дает ошибку

enter image description here

Как изменить формат для ввода даты?

Заранее спасибо.

+0

Если вы хотите/нуждаетесь в определенном формате, и выбранный инструмент не поддерживает этот формат, выберите другой инструмент. Или напишите свой собственный инструмент. – Kevin

+0

@Kevin Я спрашиваю, могу ли я делать то, что я хочу сделать, используя этот инструмент! –

ответ

1

Try установить ShortDatePattern в DateTimeFormatInfo:

CultureInfo cultureInfo = new CultureInfo("en-US"); 
DateTimeFormatInfo dateInfo = new DateTimeFormatInfo(); 
dateInfo.ShortDatePattern = "dd/MM/yyyy"; 
cultureInfo.DateTimeFormat = dateInfo; 
radDatePicker1.Culture = cultureInfo; 

Вы также должны реализовать собственный синтаксический: http://docs.telerik.com/devtools/wpf/controls/raddatetimepicker/how-to/implement-custom-parsing

Пример:

private void radDateTimePicker_ParseDateTimeValue(object sender, Telerik.Windows.Controls.ParseDateTimeEventArgs args) 
{ 
    DateTime date; 
    string input = args.TextToParse.ToLower(); 
    CultureInfo provider = CultureInfo.InvariantCulture; 
    string format = "dd/MM/yyyy"; 
    if (DateTime.TryParseExact(input, format, provider, DateTimeStyles.None, out date)) 
    { 
     args.Result = date; 
    } 
    else 
    { 
     args.IsParsingSuccessful = false; 
    } 
} 
+0

Спасибо за ваш ответ, я использовал Культуру, но она работала для отображения даты после ввода даты. Что я хочу применить в этом формате, когда пользователь вводит дату –

+0

@AbdulsalamElsharif снова проверить мой ответ :) – kmatyaszek

+0

Я следую вашей ссылке, Can вы помогли мне использовать ParseDateTimeValue для выполнения того, чего хотите :) –