2009-11-20 2 views
4

У меня есть DataGrid, который имеет в качестве одного из своих столбцов DatePicker (для шаблона редактирования). Есть ли способ сохранить это, но все же позволить пользователю вводить дату NULL?Silverlight DatePicker в DataGrid разрешает даты NULL

ответ

5

Выполните следующие действия (в Silverlight 4):

1) Bound свойство DataContext должно быть Nullable (или Datetime)

2) В XAML установить TargetNullValue = '' связывания свойства что-то вроде:

Text="{Binding DocumentDate, Mode=TwoWay, StringFormat='yyyy-MM-dd', TargetNullValue=''}" 
0

Обнаружено, что при исследовании такой же проблемы. Так я исправил его, так как он не был помечен.

Я использовал конвертер, который преобразует значение в null, если это просто пустой объект времени.

public class DateTimeToNullConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      DateTime dt = new DateTime(); 
      if (dt.Equals(value)) return null; 
      return value; 
     } 
     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      return value; 
     } 
    } 

XAML:

SelectedValue="{Binding CurrentContractRenewal.ExpiryDate, Mode=TwoWay, Converter={StaticResource DateTimeToNullConverter}}" 
Смежные вопросы